#include <iostream>
using namespace std;
void main()
{
int i1,i2;
cout << "input two int numbers:"<<endl;
while (true)
{
cin >> i1 >> i2;
if ((i1>0)&&(i2>0))
{
break;
}
cout << "输入有误,请重新输入:"<<endl;
}
//最大公约数方法1:
int hcd1;
int imax, imin;
if (i1 >= i2)
{
imax = i1;
imin = i2;
}
else
{
imax = i2;
imin = i1;
}
int r=0;
if (imax%imin==0)
{
hcd1 = imin;
cout << "最大公约数(方法1)是:" << hcd1;
}
else
{
r = imax%imin;
while (r)
{
imax = imin;
imin = r;
r = imax%imin;
}
hcd1 = imin;
cout << "最大公约数是(方法1):" << hcd1<<endl;
}
//最大公约数方法2:
int n;
int hcd2=1;
n = (i1 >= i2) ? i2 : i1;
for (int i = 1; i <= n; ++i)
{
if ((i1%i == 0) && (i2%i == 0))
{
hcd2 = i;
}
}
cout << "最大公约数是(方法2):" << hcd2 << endl;
//最小公倍数是:两数之积除于最大公约数
int lcm1;
lcm1 = i1*i2 / hcd1;
cout << "最小公倍数(方法1):"<<lcm1 << endl;
int lcm2;
lcm2 = i1*i2 / hcd2;
cout << "最小公倍数(方法2):" << lcm2 << endl;
int iii;
cin >> iii;
}
最大公约数与最小公倍数(C++)
最新推荐文章于 2024-05-20 20:16:31 发布