完数的鉴定并且输出1000以内的完数

一、程序分析

一个数如果恰好等于它的因子之和,这个数就称为“完数”。

二:程序源代码示例

#include<stdio.h>
#include<math.h>
#include<windows.h>
int main()
{
	int i, j;
	printf("1000以内的完数如下表示:\n");
	for (i = 2; i<1000; i++)
	{
		int sum = 0;
		for (j = 1; j <= sqrt(i); j++)
		{
			if ((i%j) == 0)
			{
				sum = sum + j + (i / j);
			}
		}
		//判断是否为完全数,如果是,则打印其因子 
		if (i == sum - i)
		{
			printf("%d为完数\n",i);
			printf("%d 的因子: ", i);
			for (j = 1; j<i; j++)
			{
				if (i%j == 0)
				printf("%d ", j);
		}
			printf("\n");
		}
	}
	system("pause");
	return 0;
}

三:程序结果示例

这个程序的核心就是找因子,和之前打的分解质因数有异曲同工之妙。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值