来自于: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: "); 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 ",a); printf("gongbeishu:%d ",num1*num2/a); }