日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

C語言如何計(jì)算兩個(gè)數(shù)的最小公倍數(shù)_C 語言

作者:菜菜菜三菜 ? 更新時(shí)間: 2022-12-11 編程語言

C語言計(jì)算兩個(gè)數(shù)的最小公倍數(shù)

思路

最小公倍數(shù)是能同時(shí)整除兩個(gè)數(shù)A,B的最小整數(shù),可以慢慢從小到大尋找這個(gè)數(shù):

#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)//尋找能同時(shí)整除a,b的整數(shù)i
		{
			printf("%d", i);
			break;//找到,退出
		}

	return 0;
}

當(dāng)然,上面這個(gè)方法簡單,但是循環(huán)的次數(shù)較多,可以從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)//尋找能同時(shí)整除a,b的整數(shù)i
		{
			printf("%d\n", i);
			break;
		}

	return 0;
}

C語言求兩個(gè)數(shù)的公倍數(shù)

方案一

暴力求解,隨便找出一個(gè)輸入的數(shù)為臨時(shí)變量,依次+1去除兩個(gè)數(shù),等同時(shí)可以整除輸入的兩個(gè)數(shù)時(shí),這個(gè)數(shù)就是公倍數(shù)。

求最小公倍數(shù) a>=1,b<=100000用函數(shù)實(shí)現(xiàn)

int main()
{
?? ?int a = 0, b = 0;
?? ?printf("請(qǐng)輸入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)化,找到第一個(gè)數(shù)的倍數(shù)并用它來除第二個(gè)數(shù),如果能整除,則是最小公倍數(shù)

# define ?_CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
?? ?int a = 0, b = 0;
?? ?printf("請(qǐng)輸入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;? ??
}

原文鏈接:https://blog.csdn.net/qq_43622870/article/details/107115916

欄目分類
最近更新