该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
因为1000以内有3个完数所以我做的程序如下:
#include
main()
{
int i,r,q,j,p,k,n;
for(i=1;i<=1000;i++)
{
int sum=0;
for(j=1;j<=i/2;j++)
if(i%j==0) sum=sum+j;
if(sum==i) goto wanshu1;
}
wanshu1: for(n=1;n<=i/2+1;n++)
{
q=i;
if(q%n==0)
{
k=n;
printf("%d its factor is %4.0d\n",q,k);
}
if(n==i/2+1) break;
}
for(i=1;i<=1000;i++)
{
int sum=0;
for(j=1;j<=i/2;j++)
if(i%j==0) sum=sum+j;
if(sum==i)
{
if(sum!=q) goto wanshu2;
}
}
wanshu2: for(n=1;n<=i/2+1;n++)
{
p=i;
if(p%n==0)
{
k=n;
printf("%d its factor is %4.0d\n",p,k);
}
if(n==i/2+1) break;
}
for(i=1;i<=1000;i++)
{
int sum=0;
for(j=1;j<=i/2;j++)
if(i%j==0) sum=sum+j;
if(sum==i)
{
if(sum!=q&&sum!=p) goto wanshu3;
}
}
wanshu3: for(n=1;n<=i/2+1;n++)
{
r=i;
if(r%n==0)
{
k=n;
printf("%d its factor is %4.0d\n",r,k);
}
}
getchar();
}
请高手帮我简化一下程序,另外我希望输出结果是:
6 its factor is 1 2 3.
28 its factor is 1 2 4 7 14.
496 its factor is 1 2 4 8 16 31 62 124 248.
不是这个程序的:
6 its factor is 1.
6 its factor is 2.
6 its factor is 3.
28 its factor is 1.
28 its factor is 2.
28 its factor is 4.
28 its factor is 7.
28 its factor is 14.
496 its factor is 1.
496 its factor is 2.
496 its factor is 4.
496 its factor is 8.
496 its factor is 16.
496 its factor is 31.
496 its factor is 62.
496 its factor is 124.
496 its factor is 248.