HDOJ 1406 HDU 1406 完数 ACM 1406 IN HDU

MiYu原创, 转帖请注明 : 转载自 ______________白白の屋

题目地址:
         http://acm.hdu.edu.cn/showproblem.php?pid=1406
题目描述:
完数

Time Limit: 
2000 / 1000  MS (Java / Others)    Memory Limit:  65536 / 32768  K (Java / Others)
Total Submission(s): 
6817     Accepted Submission(s):  2131


Problem Description
完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:
6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14

本题的任务是判断两个正整数之间完数的个数。
 

Input
输入数据包含多行,第一行是一个正整数n,表示测试实例的个数,然后就是n个测试实例,每个实例占一行,由两个正整数num1和num2组成,(
1 < num1,num2 < 10000 ) 。
 

Output
对于每组测试数据,请输出num1和num2之间(包括num1和num2)存在的完数个数。
 

Sample Input
2
2   5
5   7
 

Sample Output
0
1

水题,直接无视;
代码如下:
#include  < iostream >
#include 
< cmath >
using   namespace  std;
int  judge (  int  a,  int  b )
{
     
int  n  =   0 ;
     
if  ( a  >  b )
        a 
^=  b  ^=  a  ^=  b;
     
if  (  6   >=  a  &&   6   <=  b )
          n 
++ ;
     
if  (  28   >=  a  &&   28   <=  b )
          n 
++ ;
     
if  (  496   >=  a  &&   496   <=  b )
          n 
++ ;
     
if  (  8128   >=  a  &&   8128   <=  b )
          n 
++ ;
     
return  n;
}
int  main()
{
    
int  T;
    scanf ( 
" %d " , & T );
    {    
           
while  ( T --  )
           {
                 
int  a,b;
                 scanf ( 
" %d%d " , & a, & b );
                 printf(
" %d\n " ,judge ( a,b ) );
           } 
    }
    
return   0
}

你可能感兴趣的:(HDOJ 1406 HDU 1406 完数 ACM 1406 IN HDU)