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; }
其实第二中最简便也最易懂,最大公约数有点绕