问题描述:
描述:一个数如果恰好等于它的因子之和(除本身以外),这个数就成为“完数”。例:6的因子为1,2,3,而6=1+2+3,因此6是完数。找出1000以内的所有完数。
代码:
#define _CRT_SECURE_NO_WARNINGS 1
//防止visual studio2013以上版本scanf报错,vc6.0环境可忽略
#include<stdio.h>
int main()
{
int i, j, s; /*变量i控制选定数范围,j控制除数范围,s记录累加因子之和*/
for (i = 2; i <= 1000; i++)
{
s = 0; /*保证每次循环时s的初值为0*/
for (j = 1; j < i; j++)
{
if (i % j == 0) /*判断j是否为i的因子*/
s += j;
}
if (s == i) /*判断因子和是否和原数相等*/
printf("%d ", i);
}
return 0;
}