C++中寻找约数个数超过N的第一个三角数


在本教程中,我们将找到一个约数个数大于n的三角数。

如果在小于或等于n的任意点上自然数的和等于给定数字,则该给定数字为三角数。

我们已经了解了什么是三角数。让我们看看解决这个问题的步骤。

  • 初始化数字

  • 编写一个循环,直到我们找到满足给定条件的数字。

  • 检查该数字是否为三角数。

  • 检查该数字是否具有超过n个约数。

  • 如果满足上述两个条件,则打印该数字并中断循环。

示例

让我们看看代码。

 在线演示

#include <bits/stdc++.h>
using namespace std;
bool isTriangular(int n) {
   if (n < 0) {
      return false;
   }
   int sum = 0;
   for (int i = 1; sum <= n; i++) {
      sum += i;
      if (sum == n) {
         return true;
      }
   }
   return false;
}
int divisiorsCount(int n) {
   int count = 0;
   for (int i = 1; i <= n; i++) {
      if (n % i == 0) {
         count += 1;
      }
   }
   return count;
}
int main() {
   int n = 2, i = 1;
   while (true) {
      if (isTriangular(i) && divisiorsCount(i) > 2) {
         cout << i << endl;
         break;
      }
      i += 1;
   }
   return 0;
}

输出

如果运行以上代码,则会得到以下结果。

6

结论

如果您在本教程中遇到任何疑问,请在评论区提出。

更新于:2020年12月29日

浏览量:109

开启您的职业生涯

完成课程获得认证

开始学习
广告