首页 > 后端开发 > C++ > 正文

C程序中的订婚数?

WBOY
发布: 2023-09-02 15:41:08
转载
782 人浏览过

C程序中的订婚数?

在这里我们将看到订婚号码。这是一对数字,其中一个数字的真因数之和比另一个数字多 1。我们必须找到这些对

例如,这对就像 (48, 75)。所以 48 的约数是 {1, 2, 3, 4, 6, 8, 12, 16, 24},和是 76。同样,75 的约数是 {1, 3, 5, 15, 25},所以和是 49。

算法

订婚对 (n) -

begin
   for num in range 1 to n, do
      sum := 1
      for i in range 2 to num, do
         if num is divisible by i, then
            sum := sum + i
            if i * i is not same as num, then
               sum := sum + num / i
            end if
         end if
         if sum > num, then
            num2 := sum – 1
            sum2 := 1
            for j in range 2 to num2, do
               if num2 is divisible by j, then
                  sum2 := sum2 + j
                  if j * j is not same as num2, then
                     sum2 := sum2 + num2 / j
                  end if
               end if
            done
            if sum2 = num + 1, then
               print the pair num and num2
            end if
         end if
      done
   done
end
登录后复制

示例

#include <iostream>
using namespace std;
void BetrothedPairs(int n) {
   for (int num = 1; num < n; num++) {
      int sum = 1;
      for (int i = 2; i * i <= num; i++) { //go through each number to get proper divisor
         if (num % i == 0) {
            sum += i;
            if (i * i != num) //avoid to include same divisor twice
            sum += num / i;
         }
      }
      if (sum > num) {
         int num2 = sum - 1;
         int sum2 = 1;
         for (int j = 2; j * j <= num2; j++){
            if (num2 % j == 0) {
               sum2 += j;
               if (j * j != num2)
               sum2 += num2 / j;
            }
         }
         if (sum2 == num+1)
         cout << "(" << num << ", " << num2 <<")" << endl;
      }
   }
}
int main() {
   int n = 5000;
   BetrothedPairs(n);
}
登录后复制

输出

1
登录后复制

以上是C程序中的订婚数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!