c语言完美数
㈠ 运用c语言输出100以内所有的完全数
1、首先打开vs 2017软件,打开一个准备好的工程,新建一个C语言文件,先写入头文件和main函数,里面定义需要的用到的4个变量。
㈡ 完美数 C语言编程
1、因子不包含数本身。所以for循环条件应该是小于2、在判断每个数前没有初始化sum。所以在外循环后面加上sum=13、不是每判断一个数都要换行,而是在有效数的时候才进行。所以移换行语句到判断语句内 代码如下,已测试通过:void main()
{
int j,i,sum=1;
for(i=6;i<=1000;i++)
{
for(j=2;j<i;j++)
if((i%j)==0)
sum+=j; if(i-sum==0)
{
printf("%d its factors are 1",i);
for(j=2;j<i;j++)
if((i%j)==0)
printf(" %d",j); printf("\n");
}
sum=1;
}
getchar();
}。。。望采纳
㈢ C语言求完数
/*完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3.(6的因子是1,2,3)*/
#include<stdio.h>
void main()
{
int i,j,k,h,s,sum;
int a[200];//20个是不够的
s=0;
sum=0;
for(i=2;i<=1000;i++)
{
s=0;//此处s=0一定要加,因为前几次循环的时候s的值已经改变
k=0;
for(j=1;j<i;j++)
{
if((i%j)==0){a[k]=j;k++;}
}
for(h=0;h<k;h++)
{
s+=a[h];
}
if(i==s){printf("%d ",i);sum++;}
}
printf("完数的个数:%d\n",sum);
}
时间太紧,没注意程序的简洁性和效率,这个需要你自己改了!