完数的判断(多种解法)

+

文章目录

  • 一、完数是什么?
  • 二、分析问题
  • 三、解题方法
    • 1.基本思路法
  • 总结


一、完数是什么?


一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。

题目要求:

 编程序找出N之内的所有完数,并按下面格式输出其因子。

eg:

输入格式

N

输出格式

? its factors are ? ? ?

样例输入

1000

样例输出

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 

二、分析问题

1.判断是否为完数

完数的判断(多种解法)_第1张图片

 2.储存完数的因子

使用数组

完数的判断(多种解法)_第2张图片


三、解题方法

1.基本思路法

代码如下(示例):

#include
using namespace std;

int main(void)
{
	int num = 10;

	int end = 1000;
	//输入
	scanf("%d", &end);

	//计算
	for (num = 2; num <= end; num++)
	{
		int sum = 1;
		int arr[100] = { 0 };
		arr[0] = 1;
		int k = 1;
		for (int i = 2; i < num; i++)
		{
            //找出完美数的所有因子
			if (num % i == 0)
			{
				sum += i;
				arr[k++] = i;
			}



			if (sum == num&&i==num-1)
			{//第三步:输出这个完美数和他的所有因子
				printf("%d its factors are ", num);
				for (int i = 0; i < k; i++)
				{
					printf("%d ", arr[i]);
				}
				printf("\n");
				sum = 1;
			}
		}
	}
	system("pause");
	return 0;
}


总结

多刷题,多看网课

你可能感兴趣的:(开发语言,c语言,c++)