/*
* Copyright (c) 2011,
烟台大学计算机学院
* All rights reserved.
* 作 者:袁静
* 完成日期:2012 年 10 月 30 日
* 版 本 号:v1.0 *
* 输入描述:输入两个正整数m和n。
* 问题描述:输入两个正整数m和n,求其最大公约数和最小公倍数。
* 程序输出:m,n的最大公约数和最小公倍数。
* 问题分析:利用辗转相除法。
* 算法设计:略
*/
#include <iostream>
using namespace std;
int main()
{
int m,n,min,max;
cout<<"请输入m,n的值 ";
cin>>m>>n;
if(m>n) { //分别找出最大和最小值
max=m;
min=n;
}else{
max=n;
min=m;
}
while(true){
if(max%m==0&&max%n==0) //用最大值分别除n,m,若取于余数都等于0,则为二者最小公倍数
{
cout<<"最小公倍数为 "<<max<<endl;
break;
}
max++; //自加
}
while(true){
if(m%min==0&&n%min==0) //用 n,m ,分别除最小数,若余数都为0,则最小数为二者最大公约数
{
cout<<" 最大公约数为"<<min<<endl;
break;
}
min--; //自减
}
return 0;
}
求两个正整数的最大公约数和最小公倍数
最新推荐文章于 2018-09-08 18:36:51 发布