问题 3137 --反向完全数(完善程序)

3137: 反向完全数(完善程序)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 374  解决: 306
[提交][状态][命题人:]

题目描述

在泽泽参加的“奇思妙想学数学”的思维拓展兴趣课中,老师抛出了一些有趣好玩的数 字游戏,取名为“完全数”,所谓完全数是真约数之和等于它本身的数。例如28的约数是 1, 2, 4,7, 14,并且1+2+4+7+14=28,所以28是完全数。这个游戏对数字特别感兴趣的泽泽来说是“小意思”,因为他认为“完全数”是最美的数字。泽泽不屑于判断单个数是否是完全数,他想找出一段连续数据里面的所有完全数,如求x〜y (2<=x<=y<=10000)中的完全数。但是他又感觉每个完全数进行正向输出又没有反向输出好看,所以他想把找到的完全数反向输出。当然如果这段数据里面没有完全数就应该输出no。

#include<iostream>
using namespace std;
int main()
{
    int x,y,i,w=0,xx,s,j;
    cin>>x>>y;
    for(i=_____(1)_____;i<=y;i++)
    {
        s=1;
        for(j=2;j*j<=i;j++)
	{
            if(_____(2)______)
	    {
                if(j*j!=i)
                    _____(3)______
		else
                    s+=j;
            }
        }
        if(s==i)
	{
            w=w+1;
            while(s>0)
	   {
                ______(4)______
                s/=10;
            }
            cout<<endl;
        }
    }
    if(w==0)
        ______(5)_______
    return 0;
}

输入

一行:包括两个数,x y代表求x〜y之间的完全数。

输出

输出可能有多行,每行一个反向输出的完全数。注:如果没有完全数,则还应该输出 no。

样例输入
Copy
2 29
样例输出
Copy
6
82

提示

来源

[提交][状态]