李时珍上山采药:编程大虾救命!!!有关C程序!!!

来源:百度文库 编辑:高考问答 时间:2024/03/29 12:48:36
一个C程序题目,编写了运行没错,但就是答案不对!!
请大虾看看我哪里编写错误了!
题目如下:一个数恰好等于它的因子之和,这个数就称为完数.例如,6的因子为1,2,3,而6=1+2+3,因此6是完数.编程序找出1000之内的所有完数,并按下面格式输出其因子:
6 its factors are 1,2,3

本人写的程序如下:
#include<stdio.h>
void main()
{int m,i,j,s;
for(m=2;m<=1000;m++)
{s=0;
for(i=1;i<=m;i++)
if(m%i==0) s=s+i;
if(m==s)
printf("%d its fastors are",m);
for(j=1;j<=m;j++)
if(m%j==0)
printf(",%d",j);
printf("\n");
}
}
希望大家帮忙一下!!找出错误!
或者重新帮忙编写个程序,感激不尽!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

#include<stdio.h>
void main()
{
int m,i,j,s;
for(m=2;m<=1000;m++)
{
s=0;
for(i=1;i<m;i++)
{
if(m%i==0)
s=s+i;
}
if(m==s)
{
printf("%d its fastors are",m);
for(j=1;j<m;j++)
{
if(m%j==0)
printf(",%d",j);
}
printf("\n");
}
}
}

#include<stdio.h>
void main()
{
int m,i,j,s;
for(m=2;m<=1000;m++)
{
s=0;
for(i=1;i<m;i++)
if(m%i==0)
s=s+i;
if(m==s)
{
printf("%d its fastors are",m);
for(j=1;j<=m;j++)
if(m%j==0)
printf(",%d",j);
printf("\n");
}

}

}

#include<stdio.h>
main()//输出1000以内的完数
{
int n,k,sum;
for(n=1;n<=1000;n++)
{
sum=0;
for(k=1;k<n;k++)if(n%k==0)sum+=k;
if(sum==n)printf("%d\n",n);
}
}

void main()
{int m,i,j,s;
for(m=2;m<=1000;m++)
{s=0;
for(i=1;i<m;i++)
if(m%i==0) s=s+i;
if(m==s)
printf("%d its fastors are",m);
for(j=1;j<m;j++)
if(m%j==0)
printf(" %d",j);
printf("\n");
}
}
我不知道对不对,你运行试试