定义两个函数,一个求最大公因数,另一个求最小公倍数,通过主函数进行输入和输出数据。
解法一:
#include<iostream>
using namespace std;
int main()
{
int gcd(int, int);
int lcm(int, int);
int m,n;
cin >> m >> n;
cout << "最大公因数:" << gcd(m, n) << endl;
cout << "最小公倍数:" << lcm(m, n);
return 0;
}
int gcd(int x, int y)//最大公因数greast common divisor
{
while (x%y)
{
int t;
t = y;
y = x % y;
x = t;
}
return y;
}
int lcm(int x, int y)//最小公倍数least common multiple
{
int i = 1;
while (x*i%y)
{
i++;
}
return x * i;
}
解法二:
#include<iostream>
using namespace std;
int main()
{
int gcd(int, int);
int lcm(int, int,int);
int m,n;
cin >> m >> n;
cout << "最大公因数:" << gcd(m, n) << endl;
cout << "最小公倍数:" << lcm(m, n,gcd(m,n));
return 0;
}
int gcd(int x, int y)//最大公因数greast common divisor
{
while (x%y)
{
int t;
t = y;
y = x % y;
x = t;
}
return y;
}
int lcm(int x, int y,int z)//最小公倍数least common multiple
{
return x * y/z;;
}