zoukankan      html  css  js  c++  java
  • 1025-完数

    描述

     

    自然数中,完数寥若晨星,请在从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

    #include<stdio.h>
    #include<math.h>
    int main()
    {
        int n,p,i,t1,t2,temp;
        while(scanf("%d",&n)!=EOF)
        {
            
                printf("%d:",n);
            for(p=2;;p++)
            {
                t1=(int)pow(2,2*p-1);
                t2=(int)pow(2,p-1);
                if(t1-t2>n)
                    break;
                temp=(int)pow(2,p)-1;
    
                for(i=2;i<=(int)sqrt(temp);i++)
                {
                    if(temp%i==0)
                        break;
                    
                }
                if(i>(int)sqrt(temp))
                    printf(" %d",t1-t2);
            }
             printf("
    ");
        }
       
    }  
    

      

  • 相关阅读:
    Python之sys & os
    1161
    1142
    P1599 货币
    P1547逆转,然后再见
    P1629八
    P1753HackSon的趣味题
    Problem 2233 ~APTX4869
    1269
    1091. Tmutarakan Exams
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3436553.html
Copyright © 2011-2022 走看看