作业帮 > 综合 > 作业

求最大公约数,这个程序为什么不对啊?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 03:26:24
求最大公约数,这个程序为什么不对啊?
#include
main()
{
int a,b,max=0,min=1000000,i;
printf("输入两个正整数a,b:");
scanf("%d%d",&a,&b);
printf("最大公约数max=:");
for(i=2;imax)
{max=i;
printf("%d",i); }
while(1);



}
用欧几里德算法,非常的高效的,你那个算法的效率是o(n)的,我的是log(n)如果n是1000000000的时候就就会跑得很慢
#include
int gcd(int a,int b){return a%b?gcd(b,a%b):b;}
int main()
{
int a,b,max=0,min=1000000,i;
printf("输入两个正整数a,b:");
scanf("%d%d",&a,&b);
printf("最大公约数max=:");
pritnf("%d\n",gcd(a,b));
}