来自于:http://www.jb51.net/article/38051.htm
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:
利用辗除法:步骤:
(1).输入两个正整数a,b(a>b)。
(2).计算a除以b所得的余数r。
(3).赋值a=b,b=r。
(4).判断:若r=0,则a,b的最大公约数等于a;否则转到第二步。
(5).输出最大公约数a
例如:
最大公约数=2*2*2=8,最小公倍数:2*2*2*3*8=192
2.程序源代码:
#include<stdio.h>
int main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1<num2)/*交换两个数,使大树放在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);
}