① 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;
}