求用C语言篇写的求任意两个数的最大公约数

2025-03-11 08:57:27
推荐回答(4个)
回答1:

#include
int
main()
{
int
i,a,b,t;
scanf("%d%d",&a,&b);//输入数a,b
if(a>b)//比较a,b大小,如果a>b则交换,结果为a
=
2;
i--)//以较小的a为基数,每次i减小1循环求最大公约数
{
if
(a
%
i
==
0
&&
b
%
i
==
0)//如果两数均能整除某数则该数为最大公约数
{
printf("最大公约数是:%d\n",i);
break;//已得到最大公约数后跳出循环
}
}
if(i==1)//若循环到最后仍无最大公约数则i=1
printf("两数只能同时被1整除!\n");
return
0;
}

回答2:

这次肯定对了!
求最大公约数和最小公倍数
main(){
int
m,n,t,r,p;
scanf("%d%d",&n,&m);
if(nn=m;
m=t;}
p=n*m;
while(m!=0){
r=n%m;
n=m;
m=r;
}
printf("\nmax
yshu:
%d,\nmin
beishu:
%d",n,p/n);
/*min
beishu是最小公倍数,max
yshu是大公约数*/
printf("\nPress
any
key
to
continue
.
.
.
");
getch();
}

回答3:

#include
void main()
{
int num1,num2,k=2,sum=1;
printf("请输入两个数:");
scanf("%d",&num1);
scanf("%d",&num2);
while(k<=num1&&k<=num2)
{
if(num1%k==0&&num2%k==0)
{

num1/=k;
num2/=k;
sum=sum*k;
}
else
k++;

}
printf("%d",sum);
}

回答4:

这次肯定对了!
求最大公约数和最小公倍数
main(){
int m,n,t,r,p;
scanf("%d%d",&n,&m);
if(nn=m;
m=t;}
p=n*m;
while(m!=0){
r=n%m;
n=m;
m=r; }
printf("\nmax yshu: %d,\nmin beishu: %d",n,p/n);
/*min beishu是最小公倍数,max yshu是大公约数*/
printf("\nPress any key to continue . . . ");
getch();
}