21xrx.com
2024-12-23 02:39:22 Monday
登录
文章检索 我的文章 写文章
C++程序:求两个正整数的最大公约数和最小公倍数
2023-06-23 09:28:10 深夜i     --     --
C++ 最大公约数 最小公倍数 正整数

C++程序可以用于求两个正整数的最大公约数和最小公倍数。最大公约数指两个数之间最大的可以整除这两个数的数,最小公倍数则是两个数的倍数中最小的那一个。

下面是一个简单的C++程序,可以用来计算两个正整数的最大公约数和最小公倍数。


#include <iostream>

using namespace std;

int gcd(int a, int b) { //计算最大公约数

  if (b == 0)

    return a;

  else

    return gcd(b, a % b);

}

int lcm(int a, int b) { //计算最小公倍数

  return a * b / gcd(a, b);

}

int main() {

  int a, b;

  cout << "输入两个正整数:";

  cin >> a >> b;

  cout << "最大公约数:" << gcd(a, b) << endl;

  cout << "最小公倍数:" << lcm(a, b) << endl;

  return 0;

}

在这个程序中,我们首先定义了两个函数gcd和lcm,分别用来计算最大公约数和最小公倍数。这两个函数都是递归函数。最大公约数的递归结束条件是b等于0,此时a就是最大公约数。而最小公倍数的计算,则需要用到最大公约数,利用公式lcm = a * b / gcd(a, b)计算得出。

接下来,使用主函数来调用这两个函数,输入两个正整数,并输出它们的最大公约数和最小公倍数。

完整的代码如下:


#include <iostream>

using namespace std;

int gcd(int a, int b) { //计算最大公约数

  if (b == 0)

    return a;

  else

    return gcd(b, a % b);

}

int lcm(int a, int b) { //计算最小公倍数

  return a * b / gcd(a, b);

}

int main() {

  int a, b;

  cout << "输入两个正整数:";

  cin >> a >> b;

  cout << "最大公约数:" << gcd(a, b) << endl;

  cout << "最小公倍数:" << lcm(a, b) << endl;

  return 0;

}

在使用C++编写程序时,特别要注意细节。输入的两个数必须为正整数,如果输入了负数或0,程序就会出错。在输入完两个数之后,程序要输出最大公约数和最小公倍数。这些小细节都需要注意。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复