输一个数,求到这个数以内的完数(详解)

完数即完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和(即因子函数)恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为"完全数"。

第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。第三个完全数是496,有约数1、2、4、8、16、31、62、124、248、496,除去其本身496外,其余9个数相加,1+2+4+8+16+31+62+124+248=496。后面的完全数还有8128、33550336等等。

cs 复制代码
#include<stdio.h>//求完数
int main()
{
	int i = 0;
	int j = 0;
	int n = 2;
	int sum = 0;
	printf("输入一个数:");
	scanf("%d", &j);
	while(n!=j)
	{
		n++;
		sum = 0;
		for (i = 1; i < n; i++)
		{
			if (n % i == 0)
				sum += i;
		}
		if (sum == n)
			printf("%d是完数\n", n);
	}
	return 0;
}
相关推荐
一只乔哇噻9 分钟前
java后端工程师进修ing(研一版 || day41)
java·开发语言·学习·算法
愚润求学10 分钟前
【贪心算法】day7
c++·算法·leetcode·贪心算法
要开心吖ZSH37 分钟前
软件设计师备考-(十六)数据结构及算法应用(重要)
java·数据结构·算法·软考·软件设计师
带娃的IT创业者1 小时前
如何开发一个教育性质的多线程密码猜测演示器
网络·python·算法
草莓熊Lotso1 小时前
【C++】递归与迭代:两种编程范式的对比与实践
c语言·开发语言·c++·经验分享·笔记·其他
Aczone282 小时前
硬件(六)arm指令
开发语言·汇编·arm开发·嵌入式硬件·算法
luckys.one7 小时前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
~|Bernard|8 小时前
在 PyCharm 里怎么“点鼠标”完成指令同样的运行操作
算法·conda
战术摸鱼大师8 小时前
电机控制(四)-级联PID控制器与参数整定(MATLAB&Simulink)
算法·matlab·运动控制·电机控制
Christo38 小时前
TFS-2018《On the convergence of the sparse possibilistic c-means algorithm》
人工智能·算法·机器学习·数据挖掘