1.常规求解法·(求5,7的最小公倍数)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//求两个数的最小公倍数
//5,7
int main()
{
int a = 0;
int b = 0;
int i = 0;
scanf("%d %d", &a, &b);
for (i = a; i <= a * b; i++)
{
if ((i % a == 0) && (i % b == 0))
{
break;
}
}
printf("%d\n", i);
return 0;
}
从一开始一个接一个的测试,但运行次数太多。
2.0 单锁求解法
要求5,7的最小公倍数,这个数既是5的倍数又是7的倍数,所以我让7*i=m,然后m%5=0即可
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//求两个数的最小公倍数
//5,7
int main()
{
int a = 0;
int b = 0;
int i = 1;
scanf("%d %d", &a, &b);
while (a * i % b != 0)
{
i++;
}
printf("%d",a* i);//打印的结果是a*i可不是i
return 0;
}
3.求最大公约数求解
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//求两个数的最小公倍数
//6,8
int main()
{
int a = 0;
int b = 0;
int m ,n, x;
scanf("%d %d", &a, &b);
m = a;
n = b;
while (n != 0)
{
x = m % n;
m = n;//循环结束后的m就是最大公约数
n = x;
}
printf("%d", a * b / m);
return 0;
}
其实第二中最简便也最易懂,最大公约数有点绕