嘀嘀抢单神器软件:C语言求公约数问题!

来源:百度文库 编辑:高校问答 时间:2024/04/27 23:13:13
谁能把答案写给我,谢谢!

int main()
{
int a,b,c,f;
scanf("%d,%d",&a,&b);
while (a!=b)
{
if (b>a)
{
f=a;
a=b;
b=f;
}

c=a-b;
if (c>b)
{
f=b;
b=c;
c=f;
}
a=b;
b=c;
}

printf("result=%d\n",b);
return 0;
}

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
2.程序源代码:
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1 { temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}

还有一种办法更简单
就是利用辗减法
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&a,&b);
num1=a;
num2=b;
while(a!=b) /*利用辗减法,直到b为0为止*/
{
if(a<b)
{ temp=a;
a=b;
b=temp;
}
a=a-b;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}