① c语言编程,找出1000内的所有完数。
完数,即完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。其所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于本身。
根据该定义 可以得出判断完数的函数如下:
#include <stdio.h>
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i <=n/2; i ++)
if(n%i == 0) s+= i;//统计所有真因子的和。
if(s == n) return 1;//如果与原值相等,则该数为完数。
return 0;//不是完数。
}
根据该函数,只需要对需要打印的范围内1 ~1000做遍历,并逐一调用该函数判断,如果返回1则打印即可。
完整代码如下:
#include <stdio.h>
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i <=n/2; i ++)
if(n%i == 0) s+= i;//统计所有真因子的和。
if(s == n) return 1;//如果与原值相等,则该数为完数。
return 0;//不是完数。
}
int main()
{
int n;
for(n = 1; n < 1000; n++)
if(is_perfect_number(n)) printf("%d,",n);
}
② 用C语言编写求1000内的完数。。。
你如果是想学编程,这个程序是很简单的,最好自己写写,然后自己调试一下,那样你才能进步哦。我给你贴一个代码,你自己作参考就是了哈,还有其他的写法
#include<stdio.h>
void main()
{
	int n,i,a;
	for(n=2;n<=1000;n++)
	{
		a=0;
		for(i=1;i<=n/2;i++)
			if(n%i==0)
				a=a+i;
			if(a==n)
			{	printf("%-5d its factors are 1",n);
		        for(i=2;i<n;i++)
		        	if(n%i==0)
		            	printf(",%d",i);  
                printf("\n");
			}
	}
	printf("\n");
}
③ c语言求出1到1000之间的完全数,
#include <stdio.h>
#include <math.h>
int main()
{
 int a,i;
    for(a=1;a<=1000;a++){
		int A[100]={0},j;
  j=0;
  for(i=1;i<a;i++){      
  if(a%i==0){        
    A[j]=i;               
    j++;
   }
  }
  int n,b;
  n=j;
  b=a;
        for(j=j-1;j>=0;j--){
   b=b-A[j];
        }
        if(b==0){
   printf("%d=",a);
   for(j=0;j<n-1;j++){
    printf("%d+",A[j]);
   }
   printf("%d\n",A[j]);
        }
    }
    return 0;
}
④ c语言 1000以内的完数
#include <stdio.h>
int main()
{
int sum,i,j;
for(i=1;i<=1000;i++)
{
sum=0;
for(j=1;j<=i/2;j++)
if(i%j==0)
sum=sum+j;
if(sum==i)
{
printf("%d its factors are",i);
for(j=1;j<=i/2;j++)
if(i%j==0)
printf(",%d ",j);
printf(" ");
}
}
return 0;
}

如果解决了你的问题的话就麻烦把我的答案选为满意答案!
⑤ c语言求2~1000之间的所有完数
#include "stdio.h"
int perfectNumber(int n)
{
	int i;
	for(i=2;i<1001;i++)
	{
		if((i%n)==0)
		{
			printf("%d\n",i);
		}
	}
}
int main()
{
	int a;
	printf("input an number:\n");
	scanf("%d",&a);
	perfectNumber(a);
}
⑥ C语言求出了1000以内的完数,怎么求他们的和
#include<stdio.h>
int
main()
{
int
i,j,n,s,a[1002];
for(i=2;i<=1000;i++)//初始化将所有的数字都设为和为1
a[i]=1;
for(i=2;i<=500;i++)//一种空间换时间的算法,可以将数字下标代替数字。
for(j=i+i;j<=1000;j=i+j)//筛选并且算出每个数的和。
a[j]=a[j]+i;
s=0;
for(i=6;i<=1000;i++)//计算出完数之和
if(a[i]==i)
 
s=s+a[i];
printf("%d\n",s);
return
0;
}
⑦ c语言,求一个程序,输出所有1000以内的完数
#include"stdio.h"
intmain()
{
intj,k,sum=0;
for(k=2;k<=1000;k++)
{
sum=0;
for(j=1;j<k;j++)
if(k%j==0)
sum=sum+j;
if(sum==k)
printf("%d",k);
}
return0;
}
⑧ c语言 求1~1000之间的完数
给你正确的程序,你对比着看吧。不是很难理解
#include <stdio.h>
  int main()
  {
  int n=1000;
  int r,j,i;
  for(i=1;i<n; i++)
{
  r = 0;
  for(j=1;j<i;j++)
{
  if(i%j == 0)
{
  r = r + j;
  }
  }
  if(r == i)
{
  printf("the result is:%d\n",r);
  r = 0;
  }
  }
  return 0;
  }
