C语言 · 最小公倍数
问题描述
编写一函数lcm,求两个正整数的最小公倍数。
样例输入
一个满足题目要求的输入范例。
例:
3 5
例:
3 5
样例输出
与上面的样例输入对应的输出。
例:
例:
数据规模和约定
输入数据中每一个数的范围。
例:两个数都小于65536。
例:两个数都小于65536。
代码一:相减法求最大公约数。
最小公倍数=两整数的乘积 ÷最大公约数
1 #include<stdio.h> 2 int main(){ 3 int m,n,a,b,c; 4 scanf("%d%d",&m,&n); 5 a=m; 6 b=n; 7 while(a!=b){ 8 if(a>b){ 9 a = a-b; 10 } else { 11 b = b-a; 12 } 13 } 14 printf("最大公约数是a or b,即:%d",a); 15 printf("最小公倍数是m*n/b,即:%d",m*n/a); 16 }
代码二:
1 #include<stdio.h> 2 int main(){ 3 int m,n,a,b,c; 4 scanf("%d%d",&m,&n); 5 a=m; 6 b=n; 7 while(b!=0){ 8 c=a%b; 9 a=b; 10 b=c; 11 } 12 printf("%d",m*n/a); 13 }