函数互质数用c语言来做 c++互质

判断两个数a,b是否为互质数的程序,用C语言编写?

两个数互质,就是说两个数的没有公共因子,即最大公约数是1

创新互联公司主营永济网站建设的网络公司,主营网站建设方案,app软件定制开发,永济h5微信平台小程序开发搭建,永济网站营销推广欢迎永济等地区企业咨询

程序如下:

#include stdio.h

int GCD(int x,int y)//最大公约数函数,欧几里德算法

{

int a,b,c;

if(xy)

{a=x,b=y;}

else

{a=y,b=x;}

while ((a%b)!=0)

{

c=a%b;

a=b;

b=c;

}

return b;

}

int main()

{

int m,n;

printf("please input two positive numbers:");

scanf("%d%d",m,n);

if(GCD(m,n)1)

printf("两个数不是互质的。\n");

else

printf("两个数是互质的。\n");

}

输入示例:100 3

输出:两个数是互质的。

程序在DEV C++下调试通过,最大公约数计算使用的是欧几里德算法(数论基础知识),看过就明白了。

C语言,互质数问题,用指针。用带填充原程序做

#includestdio.h

#includestring.h

#includemalloc.h

#includeconio.h

#includemath.h

#include stdlib.h 

#include time.h

#include stdlib.h

void is_huzhishu(int x,int y, int* jieguo)

{

int temp;

while( y != 0)

{

temp = y;

y = x % y;

x = temp;

}

if(x == 1)

{

*jieguo = 1;

}

else

{

*jieguo = 0;

}

}

int main(void)

{

int x,y,jieguo;

printf("请输入两个正整数,以英文逗号分隔\n");

scanf("%d,%d", x, y);

is_huzhishu(x, y, jieguo);

if(jieguo)

{

printf("YES\n\n");

}

else

{

printf("NO\n\n"); 

}

return 0;

}

C语言 互质数问题(最好有点解释)

/*

21 17

2 4

不是

9 3

不是

13 39

不是

q

Press any key to continue

*/

#include stdio.h

int MaxFactor(int m,int n) { // 最大公约数

int t;

if(n  m) { t = n;n = m;m = t; }    

for(t = m;t  0;t--) {

if(m % t == 0  n % t == 0)

return t;

}

return 1; // 永远得不到执行。

}

void is_huzhishu(int x,int y,int *res) {

if(1 == MaxFactor(x,y)) *res = 1;

else *res = 0;

}

int main() {

int m,n,res;

while(scanf("%d%d",m,n) == 2) {

is_huzhishu(m,n,res);

if(res) printf("是\n");

else printf("不是\n");

}

return 0;

}


本文名称:函数互质数用c语言来做 c++互质
本文地址:http://scjbc.cn/article/dojdshp.html

其他资讯