当前位置:首页 » 编程语言 » c语言找出1到1000的完数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言找出1到1000的完数

发布时间: 2022-08-29 10:12:35

c语言构建子函数求1~1000的完全数

#include<stdio.h>
#include<time.h>
intsum(intn)
{ints=0,i;
for(i=1;i<=n/2;i++)
if(n%i==0)s+=i;
returns-n;
}
intmain()
{inti,a[1001];
printf("亏数: ");
for(i=1;i<1001;i++)
{a[i]=sum(i);
if(a[i]<0)printf("%5d",i);
}
printf(" 盈数: ");
for(i=1;i<1001;i++)
if(a[i]>0)printf("%5d",i);
printf(" 完全数: ");
for(i=1;i<1001;i++)
if(!a[i])printf("%5d",i);
printf(" 花时:%.3f秒 ",clock()/1000.0);
return0;
}

Ⅱ 用C语言编程找出1000以内的所有完数。(涉及知识点:for语句和if语句)。

一个数,所有的真因子(即除了自身以外的约数)的和,恰好等于本身,称为完数。

所以,要确认是否为完数,只要把所有真因子相加判断即可。

于是,这个题目的编程思路为:

1 遍历1~1000;

2 对每个数,判断是否为完数,如是,则输出;

3 程序结束。

代码如下:

#include<stdio.h>
intmain()
{
intn,i,s;
for(n=1;n<=1000;n++)
{
s=0;
for(i=1;i<=n/2;i++)
if(n%i==0)s+=i;//是真因子,累加。
if(s==n)//是完数。
printf("%d,",n);//输出。
}

return0;
}

Ⅲ c语言 求1-1000的完数然后输出要求有点高。

#include<stdio.h>
void PerfectNum()
{
int m,n,j,i,count,count1=0,a[40],sum[10],sum1=0; //问题1
int k;
for(m=2;m<=1000;m++)
{
k=m/2,n=0,i=0;
count=0;
for(j=1;j<=k;j++)
{
if(m%j==0)//判断j是否为m的因子
{
n=n+j;//求因子的和
a[count++]=j;
}
}
if(n==m)//判断m是否等于因子的和
{
sum[count1++]=n; //问题2
sum1+=n; //问题3
printf("%d=",n);
for(j=0;j<count;j++)
printf("%d+",a[j]);
printf("\b \n");
}
}
for(i=0;i<count1;i++)
printf("%d+",sum[i]);
printf("\b=%d\n",sum1);

}
int main(void)
{
PerfectNum();
return 0;
}

Ⅳ 用c语言 输出1~1000的所有完数

# include <stdio.h>
int ws(int n)
{
int i,k,j=0;
for (i=1;i<n;i++)
{
k=n%i;
if (k==0)
j+=i;
}
if (j==n)
return 1;
else
return 0;
}
void main()
{
int i,result;
for (i=1;i<=1000;i++)
{
result=ws(i);
if (result==1)
printf("%d ",i);
}
}

Ⅳ 用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以内的完全数

重置sum的位置错了,放到内循环的开头:

#include<stdio.h>
intwanquanshu()
{
intn,i,k,sum;
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=n;i++)
{
sum=0;//放在这里
for(k=1;k<i;k++)
{

if(i%k==0)
{
sum=sum+k;
}
}
if(sum==i)
{
printf("%d ",i);
}
}
}
return0;
}
voidmain()
{
wanquanshu();
}

Ⅶ c语言 求1-1000的完数

很简单,你定义结构体就行了。

Ⅷ c语言:输出1-1000之间的所有完数,5个一行输出.

你确定题目是正确的?
1000以下的完数一共3个,何来5个一行输出?这个是基本的初中数学基础
参考程序如下
#include<stdio.h>
int
main()
{
int
n,i,j,k,s;
n=0;
for(i=1;i<=1000;i++)

{

s=0;

for(j=1;j<i;j++)

if(i%j==0)

s+=j;

if(s==i)

{

printf("%d
",i);

n++;

if
(n%5==0)

printf("\n");
//这里不可能执行的

}

}

printf("\n");
}

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