C语言编程:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因数为1,2,3,而6 10
C语言编程:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因数为1,2,3,而6=1+2+3,因此6是完数。编程序找出1000以内的所有完数,并按下面格...
C语言编程:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因数为1,2,3,而6=1+2+3,因此6是完数。编程序找出1000以内的所有完数,并按下面格式输出其因子:
6: its factors are 1,2,3
不用数组怎么做?哪位大神能帮我看看?谢谢。 展开
6: its factors are 1,2,3
不用数组怎么做?哪位大神能帮我看看?谢谢。 展开
1个回答
展开全部
因为只需要输出完数的因子,所以如果在判断过程中保存因子,会存在极多不必要的操作;所以此处选用了在得到完数后再计算一次其因子的方式。
/*
完数:一个数的因子之和等于该数
*/
#include <stdio.h>
#include <string.h>
void main()
{
int i,j,sum=1;
for(i=3;i<=1000;i++)
{
sum=1;
for(j=2;j<i;j++)
{
if( i%j==0)
sum+=j;
}
if(i==sum)
{
printf("%3d, 因子为:",i);
for( j=2; j<i; j++ )
{
if( i%j == 0 )
printf("%3d,", j );
}
printf("\n");
}
}
}
/*
完数:一个数的因子之和等于该数
*/
#include <stdio.h>
#include <string.h>
void main()
{
int i,j,sum=1;
for(i=3;i<=1000;i++)
{
sum=1;
for(j=2;j<i;j++)
{
if( i%j==0)
sum+=j;
}
if(i==sum)
{
printf("%3d, 因子为:",i);
for( j=2; j<i; j++ )
{
if( i%j == 0 )
printf("%3d,", j );
}
printf("\n");
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询