问题描述:
描述:一个数如果恰好等于它的因子之和(除本身以外),这个数就成为“完数”。例: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;
}






![[C语言] [试题详解] 求1000之内的所有 完数](https://img-blog.csdnimg.cn/1c4d930b2d6c4e56b5e0f4f9797763f3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oiR5piv6buR6ZOB5pif5769,size_7,color_FFFFFF,t_70,g_se,x_16)












