用程序语言描述求三个正整数abc(a>b>c)的最大公约数的算法

用程序语言描述求三个正整数abc(a>b>c)的最大公约数的算法

#include"stdio.h"
void main()
{
int a1,a2,a3,b,b1,b2,b3;
scanf("%d%d%d",&a1,&a2,&a3);
b1=a1; b2=a2;b3=a3;
if(a1>a2){b=a1;a1=a2;a2=b;}
if(a1>a3){b=a1;a1=a3;a3=b;}
if(a2>a3){b=a2;a2=a3;a3=b;}
while(a2%a1!=0||a3%a1!=0)
a1--;
printf("最大公约数是:%d\n",a1);
}
输入的数据不按顺序的话,可以自动排序
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-10
#include <stdio.h>
int main()
{
int a,b,c;
int k=1,s,t;

scanf("%d%d%d",&a,&b,&c);

for(k=1;k<=c;k++)
{
if(b%k==0 && c%k==0)
s=k;
}//求b和c的最大公约数为s
for(k=1;k<s;k++)
{
if(a%k==0 && s%k==0)
t=k;
}//求a和s的最大公约数为t
printf("%d",t);
return 0;
}
相似回答