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

完数即完全数(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;
}
相关推荐
无限进步_21 小时前
深入理解顺序表:从原理到完整实现
c语言·开发语言·数据结构·c++·算法·链表·visual studio
芯联智造21 小时前
【stm32简单外设篇】- 水银开关
c语言·stm32·单片机·嵌入式硬件
兩尛21 小时前
欢乐周末 (2025B卷
算法
liu****21 小时前
九.操作符详解
c语言·开发语言·数据结构·c++·算法
ALex_zry21 小时前
C语言底层编程与Rust的现代演进:内存管理、系统调用与零成本抽象
c语言·算法·rust
TheLegendMe21 小时前
动态规划Day01
算法·动态规划
666HZ66621 小时前
C语言——交换
c语言·c++·算法
我爱鸢尾花21 小时前
RNN公式推导、案例实现及Python实现
人工智能·python·rnn·深度学习·神经网络·算法
w***954921 小时前
在21世纪的我用C语言探寻世界本质——字符函数和字符串函数(2)
c语言·开发语言
无限进步_21 小时前
基于顺序表的通讯录系统设计与实现
c语言·开发语言·数据结构·c++·后端·算法·visual studio