求三个正整数的最大公因数 C语言。

尽量尽量的简单,并请用循环语句,其他的别管。

三个数的最大公约数,就是其中任意2个数的最大公约数与第三个数的最大公约数。

#include <stdio.h>

void main()
{
int a,b,c,d;
printf("input three number:");
scanf("%d %d %d",&a,&b,&d);
c = a%b;
while( c > 0 )
{
a = b;
b = c;
c = a%b;
}
a = d;
c = a%b;
while( c > 0 )
{
a = b;
b = c;
c = a%b;
}
printf("最大公约数为:%d\n",b);
}

满意请采纳。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-09
#include <stdio.h>

main()
{
int x,y,z,a,min;
scanf("%d%d%d",&x,&y,&z);
if(x>=y)
if(y>=z)min=z;
else min=y;
else
if(y<=z)min=x;
else
if(x<=z)min=x;else min=z;
printf("这三个数中最小的是",min);

for(a=min;a>0;a--)
{printf("%d",a);
if(x%a==0&&y%a==0&&z%a==0)break;}//break前面不能有“;”号
printf("\n这三个数的最大公约数是%d\n",a);
system("pause");
}
望亲采纳
第2个回答  2013-08-09
其实三个数x,y,z的最大公约数就是(x,y的最大公约数)和z的最大公约数。
#include<iostream.h>
int gcd(int a,int b)
{
int r;
if(a>b)
{
int temp;
temp=a;
a=b;
b=temp;
};
r=b%a;
if(r==0)
return a;
else
{ b=a;
a=r;
return gcd(a,b);
};
}

void main()
{
int x,y,z;
cout<<"Input three numbers x,y,z:"<<endl;
cin>>x>>y>>z;
cout<<"x,y的最大公约数"<<gcd(x,y)<<endl;
cout<<"x,y,z的最大公约数"<<gcd(gcd(x,y),z)<<endl;
}
第3个回答  2013-08-09
#include<stdio.h>
void swap(int* a,int* b)
{
int t;
t=a;
a=b;
b=t;
}
int gcd(int a,int b)
{
if(a<b) swap(a,b);
return (a%b==0)?b:gcd(b,a%b);
}
main
{
int a,b,c;
printf("Input three integers:");
scanf("%d%d%d",&a,&b,&c);
printf("The GCD is %d.",gcd(gcd(a,b),gcd(b,c)));

}
第4个回答  2013-08-09
求其中2个的,在用最大公约数和第三个求
相似回答