
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++下调试通过,最大公约数计算使用的是欧几里德算法(数论基础知识),看过就明白了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)