求两个正整数的最小公倍数

1、求两个正整数的最小公倍数
2、程序:
第一种方法:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int temp = 0;
int main(){
	printf("Please input two numbers:");
	int A, B;
	int i ,q;
	scanf("%d %d", &A, &B);
	q = A*B;
	if (A > B){
		temp = A;
	}
	else{
		temp = B;
	}
	for (i = temp; i < q + 1; ++i){
		if ((i%A == 0) && (i%B == 0)){
			printf("%d\n", i);
			break;
		}
	}

 system("pause");
 return 0;
}

方法二:

#include<stdio.h>
int main()
{
int A, B;
scanf("%d%d", &A, &B);
int i = 1;
while (((A * i) % B) != 0)
{
i++;
}
printf("%d\n", A*i);
return 0;
}

A*i的结果一定迟早会成为与B有关系的数,此时的值为A与B的最小公倍数
3、结果:
在这里插入图片描述

要编写一个两个正整数最小公倍数(LCM)的函数,并在主函数中使用它来计算这两个数的最大公约数(GCD),你可以按照以下步骤进行: 首先,我们需要定义一个用于计算最大公约数(GCD)的辅助函数。最常用的算法是欧几里得算法(Euclidean algorithm),它基于以下性质:对于任意三个整数a, b, c,如果b和c互质,则gcd(a, bc) = gcd(a, b) * gcd(a, c)。 接下来,我们将创建一个函数`lcm(int a, int b)`来计算两数的最小公倍数。根据公式,两数的最小公倍数等于它们的乘积除以它们的最大公约数,即 lcm(a, b) = (a * b) / gcd(a, b)。 下面是完整的C代码实现: ```c #include <stdio.h> // 欧几里得算法计算最大公约数 int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a % b); } // 计算最小公倍数 int lcm(int a, int b) { return (a * b) / gcd(a, b); } int main() { int num1, num2; // 输入两个正整数 printf("请输入第一个正整数: "); scanf("%d", &num1); printf("请输入第二个正整数: "); scanf("%d", &num2); // 检查输入是否为正整数 if (num1 <= 0 || num2 <= 0) { printf("输入的数字必须是正整数。\n"); return 1; } // 计算最小公倍数 int lcm_value = lcm(num1, num2); // 输出结果 printf("这两个数的最小公倍数是: %d\n", lcm_value); return 0; } ``` 现在,当你运行这个程序时,它会提示你输入两个正整数,然后计算它们的最小公倍数。同时,也包含了检查输入是否为正整数的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值