c语言互为质数的函数 c语言中质数

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语言,互质数问题,用指针。用带填充原程序做

#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;

}

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

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

程序如下:

#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语言互为质数的函数 c语言中质数
网页链接:http://abwzjs.com/article/dospjco.html