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");//每次执行完一个数字 换行
}
}
}