求三个正整数的最小公倍数(要求用到循环语句)程序怎么写呀?本人作业题,望帮忙
#include <stdio.h>
int main()
{
int age, num, i, j, f ;
int a[10];
int b[11] = { 0,1,2,3,4,5,6,7,8,9 };
for (age = 17; age <= 38; age++)
{
num = age * age * age + age * age * age * age * 10000;//把4位数和6位数转化成一个十位数
for (i = 0; i < 10; i++)//把每一位数装进数组里,a[0]就是个位
{
a[i] = num % 10;
num = num / 10;
}
for (i = 0; i < 10; i++)
{
for (j = 0; j < 10; j++)
{
if (a[i] == b[j])
{
b[j] = 11;
}
}
}
for (i = 0; i < 10; i++)
{
if (b[i] != 11)
{
f = 0;
}
else
{
f = 1;
}
}
if (f == 1)
{
printf("age=%d\n", age);
break;
}
}
return 0;
}
```c
记得采纳!
#include <stdio.h>
// 定义一个函数来计算两个数的最大公约数
int gcd(int a, int b) {
int r;
while (b > 0) {
r = a % b;
a = b;
b = r;
}
return a;
}
int main() {
int a, b, c, lcm;
printf("请输入三个正整数:\n");
scanf("%d%d%d", &a, &b, &c);
lcm = a * b / gcd(a, b); // 先计算a和b的最小公倍数
lcm = lcm * c / gcd(lcm, c); // 再计算lcm和c的最小公倍数
printf("%d, %d, %d的最小公倍数为:%d\n", a, b, c, lcm);
return 0;
}
//计算三个正整数的最小公倍数
int Least_common_multiple(int a, int b, int c) {
//计算3个正整数中的最大值
int max = (a > b) ? a : b;
max = (max > c) ? max : c;
//计算最小公倍数
int i = 1;
int result;
while (1) {
result = max * i;
if ((result % a == 0) && (result % b == 0) && (result % c == 0)) break;
i++;
}
return result;
}
#include<iostream>
using namespace std;
//求两个数的最大公约数
int main()
{
int m = 24;
int n = 18;
int r = 0;
while (m % n != 0)
{
r = m % n;
m = n;
n = r;
}
cout << n << endl;
return 0;
}
我可以提供一个基于辗转相除法求最小公倍数的算法,代码如下:
#include <iostream>
using namespace std;
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 a, b, c;
cin >> a >> b >> c;
int ans = lcm(lcm(a, b), c);
cout << "最小公倍数为:" << ans << endl;
return 0;
}
这里用了两个函数,一个是求最大公约数的函数gcd,另一个是根据最大公约数求最小公倍数的函数lcm。我们首先输入三个待求最小公倍数的正整数a,b,c,然后依次用lcm函数求出a,b,c的最小公倍数,最后输出结果。