首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每天一道c语言编程题,第30题,判断n以内的所有完数

一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数

#include

int main() {

  int n, i, j, sum;

  printf("请输入一个正整数n:");

  scanf("%d", &n);

  printf("1到%d之间的所有完数为:\n", n);

  for (i = 2; i

      sum = 1;

      for (j = 2; j < i; ++j) {

          if (i % j == 0) {

              sum += j;

          }

      }

      if (sum == i) {

          printf("%d ", i);

      }

  }

  printf("\n");

  return 0;

}

当查找1到n中的所有完数时,需要对每个数字进行判断。因此,程序使用了一个for循环来遍历2到n之间的所有数字。

对于每个数字i,程序需要计算它的所有因子之和。因此,在内层for循环中,程序从2开始遍历到i-1,判断每个数字j是否为i的因子。如果是,就将j加到sum中。

当内层for循环结束后,如果sum等于i,则说明i是完数。此时,程序将i输出即可。

最后,程序通过printf函数输出所有完数。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230315A02T0K00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券