鱼C论坛

 找回密码
 立即注册
查看: 2227|回复: 3

[已解决]毕达哥拉斯相亲数,相关程序求助

[复制链接]
发表于 2021-9-8 21:40:24 | 显示全部楼层
错误的地方太多了,你对照我写的程序,看你错了多少
  1. #include <stdio.h>
  2. #include <stdbool.h>

  3. size_t proper_divisor_sum(size_t n, bool print) {
  4.     size_t sum = 0;
  5.     const char *op = "";
  6.     if(print) printf("%lu 的真因数之和为: ", n);
  7.     for(size_t i = 1; i < n; ++i) {
  8.         if(n % i == 0) {
  9.             sum += i;
  10.             if(print) {
  11.                 printf("%s%lu", op, i);
  12.                 op = "+";
  13.             }
  14.         }
  15.     }
  16.     if(print) printf("=%lu\n", sum);
  17.     return sum;
  18. }

  19. int main(void) {
  20.     size_t skip[100], index = 0;
  21.     for(size_t i = 1; i < 10000; ++i) {
  22.         bool flag = true;
  23.         for(size_t j = 0; j < index; ++j) {
  24.             if(skip[j] == i) {flag = false; break;}
  25.         }
  26.         if(flag != true) continue;
  27.         size_t sum = proper_divisor_sum(i, false);
  28.         if(proper_divisor_sum(sum, false) == i && sum != i) {
  29.             skip[index++] = sum;
  30.             printf("相亲数:%lu,%lu\n", i, sum);
  31.             proper_divisor_sum(i, true);
  32.             proper_divisor_sum(sum, true);
  33.         }
  34.     }
  35.     return 0;
  36. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-24 08:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表