永发信息网

运用c语言输出100以内所有的完全数

答案:3  悬赏:10  手机版
解决时间 2021-03-23 06:20
  • 提问者网友:沉默的哀伤
  • 2021-03-22 08:53
运用c语言输出100以内所有的完全数
最佳答案
  • 五星知识达人网友:旧脸谱
  • 2021-03-22 09:05
简单的写了一个,源码如下:
#include 
int main()
{
 int i,j;
 int sum;
 for(i=1;i<=100;i++)
 {
sum=0;
for(j=1;j{
if(i%j==0)
sum+=j;
}
if(sum==i)
{
printf("%d its factors are ",i);
for(j=1;j{
if(i%j==0)
printf("%d ",j);
}
printf("
");
}
 }
 return 0;
}  执行结果如下:


全部回答
  • 1楼网友:大漠
  • 2021-03-22 09:43
#include
int main()
{
int i,n;
for (n=1;n<=100;n++)
{
for (int sum=0;i=1;i<=n/2;i++)
{
if (n%i==0)
sum+=i;
}
if (sum==n)
printf("%d\t",n);
}
}

100以内的完全数只有1+2+3=6 ,1+2+4+7+14=28两个数,你试试行不行。
  • 2楼网友:青尢
  • 2021-03-22 09:35
#include
int perfectNum(int);

int main()
{
int count=0;
int k[50]={0};
for(int i=1;i<=100;i++)
{
if(perfectNum(i) != -1)
{
k[count] = perfectNum(i);
count++;
}
}
printf("100以内的完全数有%d个,分别如下: ", count);
for(i=0;i {
printf("%d ", k[i]);
}
printf(" ");
return 0;
}


int perfectNum(int n)
{
int i,j,cnt=0,sum=0;
int a[20]={0};
for(i=1;i {
if(n%i==0)
{
a[cnt]=i;
cnt++;
}
}
for(j=0;j {
sum += a[j];
}
if(sum == n)
return n;
else
return -1;
}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯