随笔 - 56, 文章 - 0, 评论 - 0, 引用 - 0
数据加载中……

最小公倍数与最大公约数

① 求最小公倍数
输入两个正整数a、b,求出它们的最小公倍数c。
【分析提示】
 求解方法之一为先求出a、b中最大者max及最小者min,而后找出max的1倍、2倍、…、n倍中的满足下述条件的最小者c:该c恰好可以被min除尽。
【解答】
#include<iostream>
using namespace std;
int main()
{
    
int max,min;
    
int value1,value2;
    cout
<<"Enter the value:"<<endl;
    cin
>>value1>>value2;
    
if(value1>value2)
    
{
        max
=value1;
        min
=value2;
    }

    
else
    
{
        max
=value2;
        min
=value1;
    }

    
int c=max;
    
while(c%min)
    c
+=max;
    cout
<<"c="<<c<<endl;
    
return 0;
}


② 求最大公约数
【分析提示】
(1) 可按如下的方法来求解
                 gcd(m,n)=n;                            若m%n等于0
                 gcd(m,n)=gcd(n,m%n);           若m%n不等于0
(2) 当m%n不等于0时,由于gcd(m,n)=gcd(n,m%n),即是说,将n当做新m,将m%n当做新n后,接着去判断m%n是否为0,从而有"while(m%n!=0)..."的循环。
【解答】
 1#include<iostream>
 2using namespace std;
 3int main()
 4{
 5    int value1,value2;
 6    cout<<"Input two values:"<<endl;
 7    cin>>value1>>value2;
 8    int m=value1,n=value2;
 9    while(m%n)
10    {
11        int tmp=m;
12        m=n;
13        n=tmp%n;
14    }

15    cout<<"gcd("<<value1<<","<<value2<<")="<<n<<endl;
16    return 0;
17}

18

posted on 2009-08-12 10:41 八路 阅读(220) 评论(0)  编辑 收藏 引用 所属分类: 学习笔记


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理