当前位置:首页 » 编程语言 » c语言完数

c语言完数

发布时间: 2022-01-14 06:13:10

A. 用c语言打印“完数”

// 本程序演示一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数
#include"stdio.h"
main()
{
int i,j,s,sum;
printf("完数:\n") ;
sum=0;
for(i=2;i<=1000;i++)
{ s=0; ;//此处s=0一定要加,因为前几次循环的时候s的值已经改变 。清零
for(j=1;j<i;j++)
{
if(i%j==0)//这一块是如果能够整除,那么就是该数的因子,我们累加起来

{s+=j;
}
}
if(s==i) //因子的和与原数比较,如果正确就输出
{printf("%d\n",i);
sum++;
}
}
printf("完数的个数:%d\n",sum);
}

B. C语言中关于完数问题

第一个空: return 1
第二个空: fun(x)

前几天回答的时候,看到上楼的同志没有第二个,我也就没没注意到第二个问题,希望没耽误你的事~~~

C. 完数 c语言

#include<stdio.h>

voidmain(){
inta[200];
intn,i,j,k,s;
for(n=1;n<=1000;n++){
j=0;
s=0;
for(i=1;i<=n/2;i++){
if((n%i)==0){
a[j]=i;
s+=i;
j++;
}
}
if(n==s){
printf("%d是完数,其因数是: ",n);
for(k=0;k<j;k++)
printf("%d",a[k]);
printf(" ");
}
}
}

D. c语言求解完数!

#include<stdio.h>
int main()
{
int i,j,sum=0;
int count=0;//计算完数的和
for(i=2;i<1000;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0) sum=sum+j;
}
if(sum==i)
{
printf("%d 是完数\n",i);
count+=i;
}
sum=0;
}

printf("完数和为: %d\n",count);
return 0;
}

E. C语言如何判断这个数是完数

1、打开c语言编辑器,新建一个C语言空白文件:

F. 用C语言输出1000以内所有的完数

用C语言输出1000以内所有的完数步骤如下:

1、首先打开vc6.0,新建一个项目。

G. C语言中的完数是什么意思

欧几里德证明了:一个偶数是完数,当且仅当它具有如下形式:2^(p-1)*(2^p-1)
其中2^p-1是素数

完全数(Perfect number)是一些特殊的自然数:它所有的真因子(即除了本身以外的约数
)的和,恰好等于它本身。

例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3
=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加
,1+2+4 + 7 + 14=28。后面的数是496,8128。

古希腊数学家欧几里德是通过 2^(n-1)*(2^n-1) 的表达式发现头四个完全数的。

当 n = 2^1*(2^2-1) = 6
当 n = 2^2*(2^3-1) = 28
当 n = 2^4*(2^5-1) = 496
当 n = 2^6*(2^7-1) = 8128
欧几里德证明了:一个偶数是完数,当且仅当它具有如下形式:2^(n-1)*(2^n -1)。

尽管没有发现奇完数,但是当代数学家奥斯丁·欧尔(Oystein Ore)证明,若有奇完全
数,则其形状必然是12p + 1或36p + 9的形式,其中p是素数。在1018以下的自然数中奇完
数是不存在的。

H. C语言 完数

#include<stdio.h>
void main()
{
int t, a=1,m=1;//a表示因子,sum表示因子和
while(m<1000)
{
int sum=0; //应该放在循环里面,每次都要清0
for(a=1;a< m;a++) // 这里等号千万不能要,要了它一定能整除,就会没有结果
{
if(m%a==0)
{
t=a;
sum+=t;
}
}

if(sum ==m) //判断应该在循环for循环外面
printf("%4d",m);
m++;

I. C语言:怎么求完数

先定义一个数组a[]放各因数——一定有“1”
然后定义一个数组b[999]={1,2,3,4,5……}可以用for语句赋值int i,p;
for(i=0;i<=998;i++)
{for(p=1;p<=999;p++);
b[i]=p;}放1——999
然后用各各数——可再定义数组——去剩b[]
得余数为零的放到a[]再各各无素相加等于原来的剩数的,
就为真——用一个循环,一个int变量加一,直到 结束

热点内容
存储上市龙头 发布:2024-11-15 14:52:14 浏览:37
我的世界服务器怎么重置教学 发布:2024-11-15 14:52:13 浏览:122
C语言tf 发布:2024-11-15 14:36:22 浏览:810
违反密码法是什么意思 发布:2024-11-15 14:36:20 浏览:920
androidmp3录音 发布:2024-11-15 14:32:50 浏览:493
英朗自动挡哪个配置最好 发布:2024-11-15 14:27:44 浏览:253
编译原理断言有哪几种 发布:2024-11-15 14:25:29 浏览:200
数据库数据重复 发布:2024-11-15 14:23:17 浏览:781
安卓端开发用什么IDE 发布:2024-11-15 14:13:51 浏览:554
阿里云查看访问ip 发布:2024-11-15 14:08:58 浏览:544