题目
本题是谭浩强《C程序设计课后习题》题5.10。
题目:
一个数如果恰好等于它的因子之和, 这个数就称为“完数”。例如, 6的
因子为1, 2, 3, 而6 = 1 + 2 + 3, 因此6是“完数”。编程序找出1000之内的所
有完数, 并按下面格式输出其因子:6 its factors are 1, 2, 3
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj
一、解题思路
思路:
1.首先使用for循环遍历i从2-1000
2.然后内层for循环,j从1-i
3.如果i%j==0,s=s+j;
4.内层循环结束后,判断s是否等于i
如果不等于:退出本次循环。
如果等于,按格式进行输出即可。
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>
2.主函数部分
代码如下(示例):
int main() {
int i, j;
int s ;
for (i = 2; i <= 1000; i++)
{
s = 0;
for (j = 1; j < i; j++)
{
if (i % j == 0)
s = s + j;
}
if (s == i) {
printf("%d its factors are ", i);
for (j = 1; j < i; j++)
{
if (i % j == 0)
printf("%d,", j);
}
printf("\n");
}
}
return 0;
}
三、执行结果

输出:
6 its factors are 1,2,3,
28 its factors are 1,2,4,7,14,
496 its factors are 1,2,4,8,16,31,62,124,248,
版权声明:本文为lwj8819原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。