题目:一个数如果恰好等于它的所有因子之和,这个数就称为"完数"。例如1+2+4+7+14=28.编程

找出1000以内的所有完数。

#include "Stdio.h"

#include "Conio.h"

int main(void)

{

/* 此处添加你自己的代码 */

int i,n,sum ;

printf("\nFind a num like 28 == 1 + 2 + 4 + 7 + 14 in  0~1000 ");

printf("\nThe all num is :");

for( n = 1; n < 1000; n++)

{

sum = 0;

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

if(n%i == 0)

sum += i;

if(sum == n)

printf("%4d",n);

}

getch();

return 0;

}

--------- 完数(Prefect  number的形式------------------------------

欧几里德证明了:一个偶数是完数,当且仅当它具有如下形式: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以下的自然数中奇完

数是不存在的。

3

例子

6,28、496,8128,33550336,8589869056(10位),137438691328(12位),

2305843008139952128(19位)……

偶完数都是以6或8结尾。如果以8结尾,那么就肯定是以28结尾。

除6以外的偶完数,把它的各位数字相加,直到变成一位数,那么这个一位数一定是1(亦即

:除6以外的完数,被9除都余1。):

28:2+8=10,1+0=1

496:4+9+6=19,1+9=10,1+0=1

所有的偶完数都可以表达为2的一些连续正整数次幂之和,从2p   -   1到22p   -   2:

6=2(1 ) +   2(2 )

28=2(2  ) +   2(3)   +   2(4)

8128=2(6)   +   2(7)   +   ...   +   2(12)

33550336=2(12)   +   2(13 )  +   ...   +   2(24)

每一个偶完数都可以写成连续自然数之和:

6=1+2+3

28=1+2+3+4+5+6+7;

496=1+2+3+…+30+31

8128 = 1+2+3+...+126+127

除6以外的偶完数,还可以表示成连续奇数的立方和(被加的项共有):

28=1(3)   +   3(3)

496=1(3)   +   3(3)   +   5(3)   +   7(3)

8128=1(3 )  +   3(3)   +   5(3)   +   ...   +   15(3)

33550336=1(3)   +   3(3)   +   5(3)   +   ...   +   125(3)   +   127(3)

每一个完数的所有约数(包括本身)的倒数之和,都等于2:

1/1   +   1/2   +   1/3   +   1/6   =2

1/1   +   1/2   +   1/4   +   1/7   +   1/14   +   1/28   =2

它们的二进制表达式也很有趣:

(6)10   =   (110)2

(28)10   =   (11100)2

(8128)10 = (1111111000000)2

素数完数c语言,完数—C语言实现相关推荐

  1. python求是不是完数_python求完数

    len(x) 击败 x.len(),从内置函数看 Python 的设计思想 内置函数是 Python 的一大特色,用极简的语法实现很多常用的操作. 它们预先定义在内置命名空间中,开箱即用,所见即所得. ...

  2. 一个数如果刚好与它所有的真因子之和相等,则称该数为一个“完数

    一个数如果刚好与它所有的真因子之和相等,则称该数为一个"完数",如:6=1+2+3,则6就是一个完数.求2到m之间有多少个完数(m的值由键盘输入). 输入输出格式示例: 输入:50 ...

  3. 有一堆棋子,两枚两枚的数,最后余1枚,3枚3枚的数,最后余2枚,5枚5枚的数,最后余4枚,6枚6枚的数,最后余5枚,只有7枚7枚的数,正好可以数完。编程求出这堆棋子最少有多少枚棋子?

    有一堆棋子,两枚两枚的数,最后余1枚,3枚3枚的数,最后余2枚,5枚5枚的数,最后余4枚,6枚6枚的数,最后余5枚,只有7枚7枚的数,正好可以数完.编程求出这堆棋子最少有多少枚棋子? # includ ...

  4. 2021-04-09编程求1000以内的所有“完数”。所谓“完数”是指一个数恰好等于它的因子之和。例如,6是完数,因为6=1+2+3

    编程求1000以内的所有"完数".所谓"完数"是指一个数恰好等于它的因子之和.例如,6是完数,因为6=1+2+3 #include"stdio.h&q ...

  5. 使用c语言函数使二数相减,什么是c语言

    手机评站网今天精心准备的是<什么是c语言>,下面是详解! 什么是C语言和C+语言 1.C语言. C语言诞生得非常早,当时人们普遍还习惯用汇编语言编写软件,并且没有什么统一,通用的操作系统, ...

  6. c语言编程回文数用数组,【C语言程序设计】C语言回文数怎么求?

    问题描述 打印所有不超过n(取n<256)的其平方具有对称性质的数(也称回文数). 问题分析 对于要判定的数n计算出其平方后(存于a),按照"回文数"的定义要将最高位与最低位 ...

  7. c语言输入若干数输出最小值循环结构,C语言上机150道题

    C语言上机150道题及参考答案 1.某一门课程考试之后,需要统计考生(10人)的平均成绩,并找出其中的最高分和最低分. 2.从键盘输入两个正整数,输出这两个整数的商,要求商的小数点后保留5位.例如输入 ...

  8. 八进制数输出二进制c语言,C语言 某数输出二进制的某位

    如题: 输入一个整数,截取它对应的二进制位中从右到左的第8-11位(最右边为第0位). **输入格式要求:"%d" 提示信息:"请输入一个整数:" **输出格式 ...

  9. C语言强数Strong number算法(附完整源码)

    强数Strong number算法 何为Strong number强数 C语言强数Strong number算法完整源码(定义,实现,main函数测试) 何为Strong number强数 强数是一个 ...

  10. C语言十进制数转换为八进制(附完整源码)

    C语言十进制数转换为八进制 C语言十进制数转换为八进制完整源码 C语言十进制数转换为八进制完整源码 #include <stdio.h> void decimal2Octal(long d ...

最新文章

  1. Myeclipse在启动tomcat的时候的模式改变
  2. 智源论坛 | 知识与认知图谱(5月30日,活动报名)
  3. 2018全球硬科技创新暨“一带一路”创新合作大会,这些硬科技都要来!
  4. design principle:java 回调与委派/委托机制
  5. ORA-00257: archiver error
  6. 【转】解决多文件编译中连接错误 multiple definition of*****
  7. node本地连接服务器的数据库_Linux本地连接阿里云服务器,以及下载node.js配置环境...
  8. 等待队列设备[置顶] Linux设备驱动,等待队列
  9. activitymq 登录界面地址
  10. c#调用labview实现巴特沃斯滤波器
  11. C语言新手入门练习之三子棋
  12. 子列和列_最大子列和
  13. WPF 鼠标光标大全
  14. 计算机科学丛书20周年——20本跨世经典 夯筑科技基石
  15. POI和POI-TL操作Word
  16. python数据分析案例-利用生存分析Kaplan-Meier法与COX比例风险回归模型进行客户流失分析与剩余价值预测
  17. 从四个数字中选出三个,一共有多少组合?不重复的
  18. 技术知识库——C1见习能力认证(应用软件开发的基础知识)
  19. iOS开发系列--IOS程序开发概览ios基础
  20. js把数据导出成excel的中文乱码问题解决

热门文章

  1. vue json可视化编辑器 vue-json-editor
  2. 错误总结关于单片机课程设计——温度语音(基础模块)
  3. HTTP协议 (一) HTTP协议详解
  4. opencv-python:读取视频,不改变视频分辨率修改视频帧率
  5. 用excel计算分布表
  6. Oracle-分析函数之sum(...) over(...)
  7. 》古文诗词:庄子·杂篇·天下
  8. 百度文档破解下载方法
  9. Java网络编程:socket与Netty
  10. 你是如何学习一项新技术的?