admin管理员组文章数量:1794759
python编程1000以内的完数
一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如 6=1+2+3.
编程找出 1000 以内的所有完数
如果一个数恰好等于它的因子之和,则称该数为“完全数” [2] 。 各个小于它的约数(真约数,列出某数的约数,去掉该数本身, 剩下的就是它的真约数)的和等于它本身的自然数叫做完全数(Perfect number), 又称完美数或完备数。
#!/usr/bin/env python
# coding=utf-8
# File : perfect_number.py
# Author : Allen.Z
# Mail : z_ok@me
# Created : Wed Sep 2 16:39:05 2020
# 一个数如果恰好等于它的因子之和,这个数就称为“完数”。
# 例如 6=1+2+3.
# 编程找出 1000 以内的所有完数
# 如果一个数恰好等于它的因子之和,则称该数为“完全数” [2] 。
# 各个小于它的约数(真约数,列出某数的约数,去掉该数本身,
# 剩下的就是它的真约数)的和等于它本身的自然数叫做完全数(Perfect number),
# 又称完美数或完备数。
def is_perfect(number):
"""
判断一个数是否为完数
"""
s = 0
for n in range(1, int(number / 2)):
if number % n == 0:
s = s + n
if s == number:
return True
else:
return False
def perfert(num):
"""
找出num 以内的完全数
"""
l = []
for n in range(1, num + 1):
if is_perfect(n):
l.append(n)
return l
def test_perfect():
p = perfert(1000)
# 第一个完全数是6,第二个完全数是28,第三个完全数是496,
# 后面的完全数还有8128、33550336等等。截至2018年,相关研究者已经找到51个完全数。
assert p == [6, 28, 496]
本文标签: Python
版权声明:本文标题:python编程1000以内的完数 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686834366a108291.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论