C语言如何计算两个数的最小公倍数
菜菜菜三菜 人气:1C语言计算两个数的最小公倍数
思路
最小公倍数是能同时整除两个数A,B的最小整数,可以慢慢从小到大寻找这个数:
#include<stdio.h> int main() { int a, b; scanf("%d%d", &a, &b); for (int i = 1; ; i++) if (i%a == 0 && i%b == 0)//寻找能同时整除a,b的整数i { printf("%d", i); break;//找到,退出 } return 0; }
当然,上面这个方法简单,但是循环的次数较多,可以从a,b中的较大值开始查找,以优化算法:
#include<stdio.h> int main() { int a, b; scanf("%d%d", &a, &b); if (a < b) //如果a<b,交换值,让a成为较大值 { int temp; temp = a; a = b; b = temp; } for (int i = a; ; i++) if (i%a == 0 && i%b == 0)//寻找能同时整除a,b的整数i { printf("%d\n", i); break; } return 0; }
C语言求两个数的公倍数
方案一
暴力求解,随便找出一个输入的数为临时变量,依次+1去除两个数,等同时可以整除输入的两个数时,这个数就是公倍数。
求最小公倍数 a>=1,b<=100000用函数实现
int main() { int a = 0, b = 0; printf("请输入a和b的值\n"); scanf("%d %d", &a, &b); int tem ; while (1) { if (tem % a == 0 && tem % b == 0) { break; } tem++; } printf("%d", tem); return 0; }
方案二
在一的上面优化,找到第一个数的倍数并用它来除第二个数,如果能整除,则是最小公倍数
# define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int a = 0, b = 0; printf("请输入a和b的值\n"); scanf("%d %d",&a, &b); int i=1; while (1) { if ((a * i) % b == 0) { break; } i++; } printf("%d", a * i); return 0; }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容