C程序设计第五章作业9

程序员成长之旅 · 程序员成长之旅/C语言/习题(C语言程序设计)/第五章习题 · 193 字

问:

求1~1000的完数

例如 6的因子是1,2,3 而6=1+2+3 因此 6是完数

答:

#include<stdio.h> //判断1~1000有哪些完数 并且输出其因子

int main()

{

int Num1 = 1000, Num2 = 0, i = 0, j = 0, k = 0;//分别是  待计算数字、临时存储方便判断

for (i = 1; i <= Num1; i++)//循环运行次数

{

Num2 = 0;//每次重置为0

for (j = 1; j < i; j++)//判断是否为完数

{

if (i%j == 0)//能被整除

{

Num2 += j;//加入Num2临时存储

}

}

if (Num2 == i)//如果能被 整除 的数字  加起来 和计算数字相等,说明是 完数

{

printf("[%d] its factors are ",i);

for (k = 1; k < i; k++)//并且输出 其因子

{

if (i%k == 0)

{

printf("[%d]", k);

}

}

printf("\n");//每次执行完一个数字 换行

}

}

}