1.什么是完全数
完全数,又称完美数, 是一些特殊的自然数。它所有的真因子(即除了自身以外的约数的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的真因子之和,则称该数为“完全数”。第一个完全数是6,6=123=1+2+3.
2.源码实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int n = 65536;
int j;
scanf("%d", &n);
if(n < 6)
{
printf("None\n");
return 0;
}
for(j=6; j<=n; j+=2)
{
int s = 1;
int k, p = j;
for(k=2; k<p; k++)
{
if(j % k == 0)
{
p = j / k;
s += k + p;
}
}
if(k*k == j)
{
s += k;
}
if(s == j)
{
printf("%d\n", j);
}
}
return 0;
}
3.编译源码
$ gcc -o example examle.c -std=c89
4.运行及其结果
$ ./example
1000000
6
28
496
8128
网友评论