最小公倍数同样有两种方法
一、第一种,从a,b两数中任选一个(如a)赋值到i,i可不断加a直到i整除b
#include<Stdio.h>
int lcm(int a,int b) //least common multiple的缩写
{
int i=a;
while(i%b!=0)
i+=a;
return i;
}
void main(){
int x,y;
printf("输入两个正整数:");
scanf("%d %d",&x,&y);
printf("%d和%d的最小公倍数是:%d\n",x,y,lcm(x,y));
}
二、第二种,借用最大公约数
最小公倍数=a*b/最大公约数
#include<Stdio.h>
int gcd(int n,int m) //最大公约数
{
int r=m%n;
while(r!=0)
{
m=n;
n=r;
r=m%n;
}
return n;
}
int lcm(int a,int b) //最小公倍数
{
return a*b/gcd(a,b);
}
void main(){
int x,y;
printf("输入两个正整数:");
scanf("%d %d",&x,&y);
printf("%d和%d的最小公倍数是:%d\n",x,y,lcm(x,y));
}