想要解開這題目首先要了解什么是最小公倍數(shù)
最小公倍數(shù):是指能同時(shí)被a和b整除的最小正整數(shù)?
例如:14 和 6? 的最小公倍數(shù)有 42 84 126
最小的數(shù)就是最小公倍數(shù)
假設(shè):a=6? b=18
那么最小公倍數(shù)怎么也不可能小于 18
1.先找出a和b中的最大數(shù)賦值給max,然后用 if 判斷最大數(shù)max是否能同時(shí)%a和b等于零那么它就是最小公倍數(shù)如果不行那最大數(shù)max++
int main() { int a = 0, b = 0; scanf("%d %d", &a, &b); int m = a < b ? a : b; while (m) { if (m % a == 0 && m % b == 0) { printf("%d\n", m); break; } m++; } return 0; }
2.先用輾轉(zhuǎn)相除法求出最大公約數(shù),然后
a*b/最大公約數(shù)=最小公倍
int main() { int a = 0, b = 0; scanf("%d %d", &a, &b); int n = a * b; int m = 0; while (m = a % b) { a = b; b = m; } printf("%d\n", n / b); }
3.創(chuàng)建個(gè) while 循環(huán) if 判斷 a * i % b==0
看 a 乘于 i 得出的數(shù)看能不能被 b 整除如果可以那么它就是最小公倍數(shù)文章來源:http://www.zghlxwxcb.cn/news/detail-400948.html
int main() { int a = 0, b = 0; scanf("%d %d", &a, &b); int i = 1; while ((a * i) % b != 0) { i++; } printf("%d\n", i * a); return 0; }
第三種方法效率最高文章來源地址http://www.zghlxwxcb.cn/news/detail-400948.html
到了這里,關(guān)于C語言(求最小公倍數(shù)的3種方法)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!