编程找出1000以内所有的完数,并输出每个完数的所有因子
3个回答
展开全部
# include<stdio.h>
int main()
{
int n,i,sum;/*定义变量*/
for(n=2;n<=1000;n++)/*给变量赋初值实现循环*/
{sum=0;
for(i=1;i<=n;i++)
{
if(n%i==0)
sum=sum+i;/*把它的因数累加起来赋给sum存储起来*/
if(sum==n)/*因数之和等于给出的那个数n*/
{
printf(" %d its factors are",n);/*输出n的值*/
for(i=1;i<n;i++)
{
if(n%i==0) printf("%d,",i);/*把i的值依次输出*/
} printf("\n"); /*输出完一列之后换行*/
}
}
}
return 0;
}
int main()
{
int n,i,sum;/*定义变量*/
for(n=2;n<=1000;n++)/*给变量赋初值实现循环*/
{sum=0;
for(i=1;i<=n;i++)
{
if(n%i==0)
sum=sum+i;/*把它的因数累加起来赋给sum存储起来*/
if(sum==n)/*因数之和等于给出的那个数n*/
{
printf(" %d its factors are",n);/*输出n的值*/
for(i=1;i<n;i++)
{
if(n%i==0) printf("%d,",i);/*把i的值依次输出*/
} printf("\n"); /*输出完一列之后换行*/
}
}
}
return 0;
}
2019-03-05
展开全部
#include<stdio.h>
int main()
{
int i,j,sum;
for(i=1;i<=1000;i++)
{
sum=0;
for(j=1;j<i;j++)
if(i%j==0)
sum=sum+j;
if(i==sum)
{
printf("%d its factors are ",i);
for(j=1;j<i;j++)
if(i%j==0)
printf("%d,",j);
printf("\n");
}
}
return 0;
}
结果:
6 its factors are 1,2,3,
28 its factors are 1,2,4,7,14,
496 its factors are 1,2,4,8,16,31,62,124,248,
Press any key to continue
int main()
{
int i,j,sum;
for(i=1;i<=1000;i++)
{
sum=0;
for(j=1;j<i;j++)
if(i%j==0)
sum=sum+j;
if(i==sum)
{
printf("%d its factors are ",i);
for(j=1;j<i;j++)
if(i%j==0)
printf("%d,",j);
printf("\n");
}
}
return 0;
}
结果:
6 its factors are 1,2,3,
28 its factors are 1,2,4,7,14,
496 its factors are 1,2,4,8,16,31,62,124,248,
Press any key to continue
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:编写程序,输出 1000 以内的所有完数及其因子。
说明:所谓完数是指一个整数的值等于它的因子之和。
例如“ 6 的因子是 1 、 2 、 3 ,而 6=1+2+3 ,故 6 是
一个完数。
-------------------------------------------------------*/
#include <stdio.h>
int main()
{
int i,j,m,s,k,a[100] ;
for(i=1 ; i<=1000 ; i++ )
{
m=i ; s=0 ; k=0 ;
for(j=1 ; j<m ; j++)
/***********SPACE***********/
if((m%j)== 0)
{
s=s+j ;
/***********SPACE***********/
a[k++]=j ;
}
/***********SPACE***********/
if(s!=0&&s==m) /***if available, output the results***/
{
/***********SPACE***********/
for(j=0 ; j<k ; j++)
printf("%4d",a[j]) ;
printf(" =%4d\n",i) ;
}
}
system ("pause");
return 0;
}
【程序填空】
---------------------------------------------------------
功能:编写程序,输出 1000 以内的所有完数及其因子。
说明:所谓完数是指一个整数的值等于它的因子之和。
例如“ 6 的因子是 1 、 2 、 3 ,而 6=1+2+3 ,故 6 是
一个完数。
-------------------------------------------------------*/
#include <stdio.h>
int main()
{
int i,j,m,s,k,a[100] ;
for(i=1 ; i<=1000 ; i++ )
{
m=i ; s=0 ; k=0 ;
for(j=1 ; j<m ; j++)
/***********SPACE***********/
if((m%j)== 0)
{
s=s+j ;
/***********SPACE***********/
a[k++]=j ;
}
/***********SPACE***********/
if(s!=0&&s==m) /***if available, output the results***/
{
/***********SPACE***********/
for(j=0 ; j<k ; j++)
printf("%4d",a[j]) ;
printf(" =%4d\n",i) ;
}
}
system ("pause");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询