作业比赛编号 : 100000592 - 《算法笔记》5.5小节——数学问题->质因子分解 问题 E: 完数与盈数

作业比赛编号 : 100000592 - 《算法笔记》5.5小节——数学问题->质因子分解 问题 E: 完数与盈数

作业比赛编号 : 100000592 - 《算法笔记》5.5小节——数学问题->质因子分解 问题 E: 完数与盈数

注意输出格式

代码

#include<cstdio>
#include<cmath>
int judge(int n)
{
    int sum=1;
    int k=sqrt(n);
    for(int i=2;i<=k;i++)
    {
        if(n%i==0)
            sum=sum+i+n/i;
    }
    if(k*k==n) sum-=k;
    if(sum==n) return 0;  //是完数
    else if(sum>n) return 1; //是溢数
    else return 2;
}
int main()
{
    int w[60],y[60];
    int j=0,k=0;
    for(int i=2;i<=60;i++)
    {
        if(judge(i)==0) w[j++]=i;
        else if(judge(i)==1) y[k++]=i;
    }
    printf("E:");
    for(int i=0;i<j;i++)
        printf(" %d",w[i]);
    printf(" G:");
    for(int i=0;i<k;i++)
        printf(" %d",y[i]);
    return 0;
     
}
/**************************************************************
    Problem: 1997
    User: #########
    Language: C++
    Result: 正确
    Time:3 ms
    Memory:1068 kb
****************************************************************/
上一篇:五一劳动之第三题


下一篇:Pandas进阶之提速遍历操作