最大公约数和最小公倍数
/* 题目:输入两个正整数m和n,求其最大公约数和最小公倍数 程序分析: 1.最小公倍数=输入的两个数之积除于它们的最大公约数,关键是求出最大公约数; 2.求最大公约数用辗转相除法(又名欧几里德算法) 算法描述: 第一步:a ÷ b,令r为所得余数(0≤r 第二步:互换:置 a←b,b←r,并返回第一步 int main() { int a,b,t,r,n; printf("请输入两个数字:\n"); scanf("%d %d",&a,&b); if(a<b) {t=b;b=a;a=t;} r=a%b; n=a*b; while(r!=0) { a=b; b=r; r=a%b; } printf("这两个数的最大公约数是%d,最小公倍数是%d\n",b,n/b); return 0; } */ #include <stdio.h> int main() { int num1, num2, num3; int least = 1; int i; printf("输入两个正整数:"); scanf("%d %d", &num1, &num2); num3 = num1*num2; for (i = 2; i<=num1 && i<=num2; i++) { while (0==num1%i && 0==num2%i) { least *= i; num1 /= i; num2 /= i; } } printf("最大公约数:%d\n", least); printf("最小公倍数:%d\n", num3/least); return 0; }