C/C++ 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如 6=1 + 2 + 3. 编程找出 1000 以内的所有完数

C/C++ 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如 6=1 + 2 + 3. 编程找出 1000 以内的所有完数

   

   

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ 面向对象

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ 设计模式

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ STL

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 技术杂谈

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 常用函数

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 图像处理

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 算法/面试

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 项目实战


一.结果演示


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,

二.源代码

程序分析:一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子是1,2,3,而6=1+2+3,因此6为完数,源码如下:

[wppay]

/************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C/C++ 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如 6=1 + 2 + 3. 编程找出 1000 以内的所有完数
//@Time:2021/10/01 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/************************************************************************/

#include <stdio.h>
#include <math.h>
#include <windows.h>

int main()
{
	int i, j, sum;      /* i表示要判断的数,j表示因子,sum表示因子之和*/

	for (i = 2; i <= 1000; i++)
	{
		sum = 1;
		for (j = 2; j <= i / 2; j++)
			if (i % j == 0)         /* 判断i能否被j整除,能的话j即为因子  因子不包括自身 */
				sum += j;

		if (sum == i)    /* 判断此数是否等于因子之和 */
		{
			printf("%d its factors are 1, ", i);    /* 输出该数 */

			for (j = 2; j <= i / 2; j++)
				if (i % j == 0)printf("%d, ", j);    /* 输出因子 */

			printf("\n");
		}
	}

	
}


[/wppay]

开通 vip 会员可免费阅读所有文章哟

代码下载:code.c


C4996 ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

解决办法参考:《C/C++ error C4996: ‘getch’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conf》


三.猜你喜欢


   

   

推荐文章

发表评论