C语言查找100万以内的完数
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编译器中运行。
原文地址: https://www.cveoy.top/t/topic/bNoC 著作权归作者所有。请勿转载和采集!