求三个正整数的最小公倍数(要求用到循环语句)程序怎么写呀

求三个正整数的最小公倍数(要求用到循环语句)程序怎么写呀?本人作业题,望帮忙



#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

记得采纳!

img


#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;
}
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7562501
  • 这篇博客你也可以参考下:编写两个函数,分别求两个正整数的最大公约数和最小公倍数;
  • 除此之外, 这篇博客: 编程练习题中的 求两个数的最大公约数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #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;
    }
    
  • 您还可以看一下 刘运强老师的微信公众平台开发入门课程中的 消息及消息处理工具的封装小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以提供一个基于辗转相除法求最小公倍数的算法,代码如下:

    #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的最小公倍数,最后输出结果。