问题 5648 --一锐的完美数

5648: 一锐的完美数

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

题目描述

热爱学习的一锐今天从数学老师那里了解到了完美数,如果一个数恰好等于它的真因子之和,则称该数为“完全数”。各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数(Perfect number),又称完美数或完备数机敏的一锐,在了解到所有的完美数都是三角形数(第n个三角形数是n*(n+1)/2)后想要快速得出某一区间[x,y]里面的所有的完美数,同时他觉得计算不过是无聊的过程。所以他想请擅长编程的你来帮他得到结果。

输入

第一行输入一个正整数T(1<=T<=100)表示数据组数。接下来T行,每行两个正整数x,y(1<=x<=y<=200000000000)。

输出

每行输出区间[x,y]之间的所有完全数,如果没有就输出unhappy(不含双引号)。

样例输入
Copy
3
2 10
14 41
44 100
样例输出
Copy
6 
28 
unhappy

提示

6的真因子有1,2,3,且6=1+2+3,故6是完美数,同时也是三角形数;

28的真因子有1,2,4,7,14,且28=1+2+4+7+14,故28是完美数,同时28=1+2+3+4+5+6+7,也是三角形数。

来源

 

[提交][状态]