【Python练习题 014】 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。编程找出1000以内的所有完数。

-----------------------------------------------------------

这题只要弄明白“完数”及其“因子”的概念,就不难。一开始我把“因子”理解为“质因子”,结果只算得出个6。后来才知道,只要数字a能被数字b整除,不论b是不是质数,都算是a的因子。比如:8的质因子是 2, 2, 2,但8的因子就包括 1,2,4。

这么算来,求解“因子”可就比“质因子”简单多了,因为不用担心质因子重复的问题。代码如下:

import math

for i in range(2, 1000):
factors = [] #因子列表,i 每次循环都清空
for j in range(1, math.floor(i/2)+1):
if i%j == 0:
factors.append(j)
if sum(factors) == i:
print(i, end=',')

输出结果如下:

6,28,496,

++++++++++++++++++++++++++++++++++++++

题目出处:编程语言入门经典100例【Python版】

Python练习题 014:完数的更多相关文章

  1. python基础练习题(题目 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数)

    day12 --------------------------------------------------------------- 实例019:完数 题目 一个数如果恰好等于它的因子之和,这个 ...

  2. Python练习题 025:判断回文数

    [Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ---------------------------------------- ...

  3. PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。

    Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...

  4. 【Python】【demo实验20】【练习实例】【寻找“完数”】

    原题: 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. 我的代码: #!/usr/bin/python # encodi ...

  5. 如何使用python在短时间内寻找完数

    完数:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该数 ...

  6. python3 练习题100例 (二十四)打印完数

    完数:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如 6 = 1+2+3. 题目内容: 输入一个正整数n(n<1000),输出1到n之间的所有完数(包括n). 输 ...

  7. JAVA 基础编程练习题9 【程序 9 求完数】

    9 [程序 9 求完数] 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如 6=1+2+3.编程找出 1000 以内的 所有完数. package cskaoyan ...

  8. C++复习练习题:1-1000的完数

    一个数如果恰好等于它的因子之和,就被成为完数.例如6的因子为1,2,3,而6=1+2+3,所以6是一个完数.编程找出1-1000之间的所有完数 #include<iostream> usi ...

  9. Python练习题 003:完全平方数

    [Python练习题 003]一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? --------------------------------------- ...

随机推荐

  1. Flink自定义Sink

    Flink自定义Sink Flink 自定义Sink,把socket数据流数据转换成对象写入到mysql存储. #创建Student类 public class Student { private i ...

  2. 通过WordCount解析Spark RDD内部源码机制

    一.Spark WordCount动手实践 我们通过Spark WordCount动手实践,编写单词计数代码:在wordcount.scala的基础上,从数据流动的视角深入分析Spark RDD的数据 ...

  3. facebookPixel代码安装详解

    最近接到一个需求,优化独立站的facebookPixel代码,完成后对这个项目进行复盘.首先要介绍facebookPixel的理论知识. Facebook像素是一段JavaScript代码,其中加载了 ...

  4. JAVA集合类简要笔记 - 内部类 包装类 Object类 String类 BigDecimal类 system类

    常用类 内部类 成员内部类.静态内部类.局部内部类.匿名内部类 概念:在一个类的内部再定义一个完整的类 特点: 编译之后可生成独立的字节码文件 内部类可直接访问外部类私有成员,而不破坏封装 可为外部类 ...

  5. 大概是win里最方便快捷的截图+拾色软件——Snipaste

    Snipaste 是一个简单而又强大的截图工具,还可以让你将截图贴回到屏幕上!按下 F1 截图快捷键来开始截图,再按 F3贴图快捷键,截图就在桌面置顶显示了.对比文字,对比表格,对比图片,就这么简单! ...

  6. 保存vuex状态刷新不消失

    写在App.vue中,所有页面共享此方法 export default { name: "app", components: {}, created() { // 页面每次刷新加载 ...

  7. 兼容H5页面的js

    (function (doc, win) { let docEl = doc.documentElement; let resizeEvt = 'orientationchange' in windo ...

  8. 20190926-02Redis五大数据类型之Set 000 028

  9. latex pdf 转 eps

    latex pdf 转 eps 方法一,使用命令行,缺点是得到的文件有点大 pdf 转 ps, pdf2ps input.pdf output.ps ps 转 eps, ps2eps input.ps ...

  10. C的文件操作---笔记

    打开文件  FILE *fp = fopen(char *filename, char *mode) 关闭文件  fclose(fp) 字符形式读  char ch = fgetc(fp) 字符形式写 ...