注:最小公倍数等于两数相乘除以最大公约数
#include <stdio.h>
int LCM(int a,int b) //最小公倍数
{
//两数相乘除以最大公约数
int c = a*b;
int d = GCD3(a,b);
return c/d;
}
int GCD(int a,int b)//最大公约数
{
//两种思路: 1.从1开始,找最大能整除这两个数的数
// 2.从二者较小的数开始,直到有个数将二者整除
int c = a<b?a:b;
while ((a%c!=0)||(b%c!=0))
{
c--;
}
return c;
}
int GCD2(int a,int b)
{
int c = a<b?a:b;
int e=1;
for(int d=1;d<=c;d++)
{
if((a%d==0)&&(b%d==0))
e=d;
}
return e;
}
int GCD3(int a,int b) //辗转相除法:不断用除数除以余数,直到余数为0,最后的除数是最大公约数
{
if(a>b)//取a小于等于b
{
a ^= b;
b ^= a;
a ^= b;
}
int c = b%a;
while (c)
{
b = a;
a = c;
c = b%a;
}
return a;
}
int main(int argc, char *argv[])
{
printf("%d\n",LCM(3,9));
printf("Hello World!\n");
return 0;
}