C++编程题 输出完数

rt求解非常感谢!!... rt求解 非常感谢!! 展开
 我来答
听不清啊
高粉答主

2019-10-15 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。

#include<stdio.h>

int sum(int n)

{ int i,s=1;

  for(i=2; i*i<n; i++)

    if(n%i==0)s+=i+n/i;

  if(i*i==n&&n%i==0)s+=i;

  return s;

}

int main()

{ int n,i;

  scanf("%d",&n);

  for(i=2; i<=n; i++)

    if(sum(i)==i)

      printf("%d\n",i);

  return 0;

}

追问
不存在完数的时候输出no 应该怎么改呢
追答
已经修改完毕:
#include
int sum(int n)
{ int i,s=1;
for(i=2; i*i<n; i++)
if(n%i==0)s+=i+n/i;
if(i*i==n&&n%i==0)s+=i;
return s;
}
int main()
{ int n,i,k; //原来的k加错地方了
scanf("%d",&n);
for(i=2; i<=n; i++)
if(sum(i)==i)
{printf("%d\n",i);
k++;
}
if(!k)printf("no\n");
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式