freemandj
freemandj
2020-02-29 18:06
采纳率: 63.2%
浏览 3.5k

本题要求两个给定正整数的最大公约数和最小公倍数,求大神帮忙改改,谢谢

本题要求两个给定正整数的最大公约数和最小公倍数。
输入格式:
输入在一行中给出两个正整数M和N(≤1000)。
输出格式:
在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。
输入样例:
511 292

输出样例:
73 2044
这是我的代码
#include
using namespace std;
int main()
{
double num1,num2,number1,number2,i,number,j,m,k,flag=0;
cin>>num1>>num2;
if(num1>num2)
{
number1=num1;
number2=num2;
}
else
{number1=num2;
number1=num1;
}
for(i=number2;i>0;i--)
{
if(num1/number2==0&&num2/number2==0)
{
cout<<i;
break;
}
}
number=num1*num2;
j=number1;
m=number2;
i=1;
k=1;
while(j<=number){
while(m<=j)
{
if(m==j)
{cout<<m;
flag=1;
break;
}
k++;
m*=k;

}
if(flag==1)
break;
i++;

j*=i;
}

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • caozhy
    已采纳
    // Q1056566.cpp : Defines the entry point for the console application.
    //
    
    #include <iostream>
    using namespace std;
    int main()
    {
        int num1,num2,number1,number2,i,number,j,m,k,flag=0;
        cin>>num1>>num2;
        if(num1>num2)
        {
            number1=num1;
            number2=num2;
        }
        else
        {
            number1=num2;
            number2=num1;
        }
        for(i=number2;i>0;i--)
        {
            if(number1%i==0 && number2%i==0)
            {
                cout<<i << " " << num1 / i * num2;
                break;
            }
        }
        /*
        number=num1*num2;
        j=number1;
        m=number2;
        i=1;
        k=1;
        while(j<=number){
            while(m<=j)
            {
                if(m==j)
                {
                    cout<<m; 
                    flag=1;
                    break;
                }
                k++;
                m*=k;
    
            }
            if(flag==1)
                break;
            i++;
    
            j*=i;
        }*/
    }
    
    
    点赞 评论
  • xianfajushi
    智者知已应修善业 2020-02-29 20:17

    你用的是哪种求法?
    最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。
    可参https://blog.csdn.net/xianfajushi/article/details/40684447?ops_request_misc=%7B%22request%5Fid%22%3A%22158297865819725211914541%22%2C%22scm%22%3A%2220140713.130056874..%22%7D&request_id=158297865819725211914541&biz_id=0&utm_source=distribute.pc_search_result.none-task

    点赞 评论
  • jiangcheng2016
    叫我姜同学 2020-02-29 20:37

    #include
    using namespace std;

    int main()
    {
    int num1,num2,num,number1,number2;
    cin>>num1>>num2;

    number1 = num1;
    number2 = num2;
    
    //求最大公约数
    while(num2!=0)
    {
        num=num1%num2;
        num1=num2;
        num2=num;
    
    }
    cout << num1;
    //求最大公倍数
    //最小公倍数是两数之积整除最大公倍数
    cout << number1*number2/num1;
    return 0;
    

    }

    点赞 评论

相关推荐