用C 写一个 输入两个数,判断是否互质的程序(必须用C)

用C 写一个 输入两个数,判断是否互质的程序(必须用C),第1张

#include<stdio.h>

int main()

{

int a,b,t,an,bn

scanf("%d%d",&an,&bn)

a = an

b = bn

if(a <b)

{

t = a

a = b

b = t

}

while(t=a%b)

{

a = b

b = t

}

if(b == 1)

{

printf("%d和%d互质",an,bn)

}

else

{

printf("%d和%d的最大公约数为%d",an,bn,b)

}

}

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

程序如下:

#include <stdio.h>

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

{

int a,b,c

if(x>y)

{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++下调试通过,最大公约数计算使用的是欧几里德算法(数论基础知识),看过就明白了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8152576.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存