菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 基础教程
(追記) (追記ここまで)

Python 练习实例19

Python 100例 Python 100例

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

程序分析:请参照程序Python 练习实例14

程序源代码:

实例

#!/usr/bin/python# -*- coding: UTF-8 -*-fromsysimportstdoutforjinrange(2,1001): k = []n = -1s = jforiinrange(1,j): ifj % i == 0: n += 1s -= ik.append(i)ifs == 0: print(j)foriinrange(n): stdout.write(str(k[i]))stdout.write('')print(k[n])

以上实例输出结果为:

6
1 2 3
28
1 2 4 7 14
496
1 2 4 8 16 31 62 124 248

Python 100例 Python 100例

AI 思考中...

9 篇笔记 写笔记

  1. #0

    等一个人

    252***[email protected]

    93

    参考方法:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    for i in range(1, 1001):
     sum = 0
     for j in range(1, i):
     if i % j == 0:
     sum += j
     if sum == i:
     print(i)
    

    等一个人

    252***[email protected]

    9年前 (2017年04月28日)
  2. #0

    swordzjc

    hfu***[email protected]

    8

    Python3 测试实例

    #!/usr/bin/python3
    list2 = []
    for x in range(1, 1001):
     list1 = []
     for i in range(1, int(x / 2) + 1):
     if x % i == 0:
     list1.append(i)
     if x == sum(list1):
     print(x)
     print(list1)
     list2.append(x)
     print("共计有%d个完数"%(len(list2)))
    

    swordzjc

    hfu***[email protected]

    9年前 (2017年05月03日)
  3. #0
    3

    参考方法:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    __author__ = 'Arlene'
    def fun(num):
     sum = 1 # 1要加上,所以默认赋值为1
     for i in range(2, num): # 因子不包括本身,
     if num % i == 0:
     sum += i
     if sum == num:
     return num
    result = []
    for num in range(2, 1000):
     test = fun(num)
     if test: # 去掉空值
     result.append(test)
    print("完数有:", result)
    
    9年前 (2017年05月22日)
  4. #0

    vicotr

    qwe***[email protected]

    1

    参考方法:

    #!/usr/bin/env python
    for i in range(1,1001):
     s = 0
     L = []
     for x in range(1,int((i+3)/2)):
     if i % x == 0:
     s += x
     L.append(x)
     if i == s:
     print(i)
     print(L)
    

    vicotr

    qwe***[email protected]

    9年前 (2017年05月23日)
  5. #0

    清风

    297***[email protected]

    2

    参考方法:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    l = []
    def num(n):
     for i in range(1,n + 1):
     if n != i and n % i == 0:
     l.append(i)
     return l
    for i in range(1,1001):
     sum = 0
     l = []
     m = num(i)
     if m == []:
     pass
     else:
     for j in m:
     sum += j
     if i == sum:
     print i
    

    清风

    297***[email protected]

    9年前 (2017年05月26日)
  6. #0

    茶叶

    250***[email protected]

    1

    参考方法:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    list1 = []
    for j in range(2, 10001):
     l = []
     for i in range(1, j//2+1):
     if j % i == 0:
     l.append(i)
     if j == sum(l):
     list1.append(j)
     print("{}={}".format("+".join(map(str, l)), j))

    茶叶

    250***[email protected]

    9年前 (2017年08月08日)
  7. #0

    寄他与思丶

    100***[email protected]

    1

    参考方法:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    Sn = []
    for i in range(2,1001):
     for j in range(1,i):
     if i % j == 0:
     Sn.append(j)
     if i == reduce(lambda x,y : x + y,Sn):
     print i,Sn
     Sn = []

    寄他与思丶

    100***[email protected]

    9年前 (2017年09月27日)
  8. #0
    1

    Python3 测试:

    import functools
    for num in range(1,1001):
     savenum=int(num)
     list1 = []
     for idx in range(1,int(num)):
     if num % idx == 0:
     list1.append(idx)
     if functools.reduce(lambda x,y:x+y,list1,0) == savenum:
     print(savenum,list1)
    
    9年前 (2017年11月01日)
  9. #0

    慢蜗牛木心

    wan***[email protected]

    1

    参考:

    import numpy as np
    for m in range(1,1001):
     n=[1]
     for i in range(2,m):
     if m % i == 0:
     n.append(i)
     if m == np.sum(n):
     print m,n

    慢蜗牛木心

    wan***[email protected]

    9年前 (2017年11月14日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /