C语言查找100万以内的完数

一个数如果恰好等于它的因子之和,就称这个数为'完数'。本文将使用C语言程序找出1000000之内的所有完数。

以下是使用C语言编写的程序,它可以找出1000000之内的所有完数:

#include <stdio.h>

void findPerfectNumbers(int limit) {
    for (int num = 2; num <= limit; num++) {
        int sum = 1;
        for (int i = 2; i * i <= num; i++) {
            if (num % i == 0) {
                sum += i;
                if (i * i != num) {
                    sum += num / i;
                }
            }
        }
        if (sum == num) {
            printf('%d\n', num);
        }
    }
}

int main() {
    int limit = 1000000;
    findPerfectNumbers(limit);
    return 0;
}

程序解释:

该程序使用了两个嵌套的for循环来查找完数。

  • 外部的循环迭代从2到给定的上限值。
  • 内部的循环用于计算因子之和。
  • 如果因子之和等于当前迭代的数值,则打印该数值。

示例运行结果:

该程序运行后,将打印出以下完数:

6 28 496 8128

注意:

由于GPT-3.5 Turbo是一个自然语言处理模型,它不能直接运行代码。你需要将上述C语言程序复制并粘贴到本地的C编译器中运行。

C语言查找100万以内的完数

原文地址: https://www.cveoy.top/t/topic/bNoC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录