① 求最小公倍数
输入两个正整数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