C語言如何計算兩個數的最小公倍數
更新時間:2022年11月14日 08:56:43 作者:菜菜菜三菜
這篇文章主要介紹了C語言如何計算兩個數的最小公倍數,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
C語言計算兩個數的最小公倍數
思路
最小公倍數是能同時整除兩個數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;
}當然,上面這個方法簡單,但是循環(huán)的次數較多,可以從a,b中的較大值開始查找,以優(yōu)化算法:
#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用函數實現(xiàn)
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;
}方案二
在一的上面優(yōu)化,找到第一個數的倍數并用它來除第二個數,如果能整除,則是最小公倍數
# 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;? ??
}以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

