题5.10。一个数如果恰好等于它的因子之和, 这个数就称为“完数”。例如, 6的 因子为1, 2, 3, 而6 = 1 + 2 + 3, 因此6是“完数”。编程序找出1000之内的所 有完数, 并按下

题目

本题是谭浩强《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版权协议,转载请附上原文出处链接和本声明。