NeQrhk 2015-07-30 13:18 采纳率: 30.6%
浏览 1713
已采纳

一道openjudge的题目问下,

列出完数的一个题目问下
查看 提交 统计 提问
总时间限制: 1000ms 内存限制: 1024kB
描述
自然数中,完数寥若晨星,请在从1 到某个整数范围中打印出所有的完数来。所谓“完数”是指一个数恰好等于它的所有不同因子之和。例如,6 是完数,因为6=1+2+3。而24不是完数,因为24≠ +2+3+4+6+8+12(=36)。

输入
输入数据中含有一些整数n(1
输出
对于每个整数n,输出所有不大于n 的完数。每个整数n 的输出由n 引导,跟上冒号,然后是由空格开道的一个个完数,每个n 的完数列表应占独立的一行。
样例输入
100
5000
0
样例输出
100: 6 28
5000: 6 28 496
————————————————————————————————
我写的代码一直没办法accept
————————————————————————————
#include “stdio.h”
#include "math.h"
int main()
{
long long int sum=1;
int i,j,k;
char ch;
int count=0;
long long int b[100];
for(i=1;i<=12;i++)
{
sum*=i;
}
while(scanf("%ld",&b[i])==1)
{
if((ch=getchar())==EOF)
{
break;
}
i++;
}
for(j=0;j<i;j++)
for(k=j+1;k<i;k++)
{
if(b[k]*b[j]==sum)
{
count++;
}

}
printf("%d",count);
return 0;
}——————————————————————
不知道怎么改好。。。
题目网址。。
——————————————
http://jmu.openjudge.cn/stl/T2/
——————————————————————

  • 写回答

2条回答 默认 最新

  • devmiao 2015-07-30 22:13
    关注
     #include <cstdlib>
    #include <iostream>
    #include <vector>
    #include <cstdio>
    
    using namespace std;
    
    const int MAX = 10000;
    
    int main(int argc, char *argv[])
    {
        vector<int> vec;
    
        for(int i=2; i<MAX; i++)
        {    
            int sum = 0;
    
            for(int j=1; j<=i/2; j++)
            {
                if(i % j ==0)
                    sum += j;
            }
    
            if(sum == i)
                vec.push_back(i);                   
        }
    
        int n;   
        while(cin >> n)
        {      
            cout << n <<":";
            int count = vec.size();
    
            for(int i=0; i<count; i++)
            {
                if(vec[i] <= n)
                    cout << " " << vec[i];
                else
                    break;
            }
    
            cout << endl;
        }
    
        return EXIT_SUCCESS;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能