列出完数的一个题目问下
查看 提交 统计 提问总时间限制: 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.
——————————————————————