南邮 OJ 1025 完数


完数

时间限制(普通/Java) :  1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 2414            测试通过 : 516 

比赛描述

自然数中,完数寥若晨星,请在从1到某个整数范围中打印出所有的完数来。所谓“完数”是指一个数恰好等于它的所有不同因子之和。例如,6是完数,因为6=1+2+3。而24不是完数,因为24≠1+2+3+4+6+8+12=36。



输入

输入数据中含有一些整数n(1<n<10000)。

输出

对于每个整数n,输出所有不大于n的完数。每个整数n的输出由n引导,跟上冒号,然后是由空格开道的一个个完数,每个n的完数列表应占独立的一行。

样例输入

100
5000

样例输出

100: 6 28
5000: 6 28 496

题目来源

ZJUT


#include <iostream>
using namespace std;
#include <cstdio>

int main(void){
	int n=0;
	while(cin>>n){
		cout<<n<<":";
		if(n>6)
			cout<<" "<<6;
		if(n>28)
			cout<<" "<<28;
		if(n>496)
			cout<<" "<<496;
		if(n>8128)
			cout<<" "<<8128;
		cout<<endl;
	}
}
/*
int main(void){
	int m=0,n=0,i=0,j=0;
	while(cin>>n){
		cout<<n<<":";
		for(m=6;m<n;++m){
			for(i=1,j=0;i<m;++i){
				if(m%i==0){
					j+=i;
				}
			}
			if(j==m){
				cout<<" "<<m;
			}
		}
		cout<<endl;
	}
}
*/




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值