c语言编程题 :判断一个数是不是完数

 我来答
莫道無情
2019-07-09 · TA获得超过1.5万个赞
知道答主
回答量:317
采纳率:100%
帮助的人:8.1万
展开全部

C语言程序如下:

#include "stdio.h"

int main()

{

int n,i,sum=0;//定义一个存放因子和的变量,以及需要判断的数n,和循环条件用到的i

printf("请输入需要判断的数:");

scanf("%d",&n);//存放需要判断的数n

for(i=1;i<n;i++)//循环条件找出因子并累加

{

if(n%i==0)

sum+=i;

}

if(n==sum)

printf("%d 是完数\n",n);

else

printf("%d 不是完数\n",n);

return 0;

}

扩展资料:

程序思路

假设一个数为n,我们可以用循环条件,让n分别和1,2,3,4,5……n-1进行判断是否能被整除,我们可以通过取余(%)的方法来进行判断。如果判断出来取余结果为0,那么就把这些因子全部加起来,得到因子的和。

接下来,将因子的和与n进行比较,如果相等,那么就是完数,反之不是完数。

判断一个完数,就是运用基本输入函数(scanf),将要判断的数据输入进来,之后运用循环条件来判断。

匿名用户
推荐于2017-12-16
展开全部
#include "stdio.h"
main()
{
int m,i,s;
for(m=1;m<=1000;m++)
{
s=1;
for(i=2;i<=m/2;i++)
if(m%i==0)
s+=i;
if(s==m)
{
printf("%d=1",m);
for(i=2;i<=m/2;i++)
if(m%i==0)
printf("+%d",i);
printf("\n");
}
}
}

这是求1000以内的完数 你根据你的改一下就好 这是初学者的方法
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-25
展开全部
{
int num,i;
int gene[10];
int temp,k;
int sum=0;
for (num=2;num<1000;num++)
{
temp=num;
for (i=0;i<10;i++)
{
gene[i]=0;
} //意在清0数组
k=0;
for (i=1;i<temp;i++)
{
if (temp%i == 0)
{
gene[k]=i;
++k;
}
}
for (i=0;i<10;i++)
{
sum += gene[i];
}
if (sum == num)
{
cout<<num<<endl;
}
sum=0;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式