c语言编程题 :判断一个数是不是完数
3个回答
展开全部
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以内的完数 你根据你的改一下就好 这是初学者的方法
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;
}
}
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;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询