Python编程之找完数
生活随笔
收集整理的這篇文章主要介紹了
Python编程之找完数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述:一個數如果恰好等于它的因子之和,這個數就稱為"完數"。例如6=1+2+3.編程找出1000以內的所有完數。
程序分析:對n進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成:
(1)如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。
(2)如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數你n,重復執行第一步。
(3)如果n不能被k整除,則用k+1作為k的值,重復執行第一步。
源代碼:
#!/usr/bin/python # -*- coding: UTF-8 -*-from sys import stdout for j in range(2,1001):k = []n = -1s = jfor i in range(1,j):if j % i == 0:n += 1s -= ik.append(i)if s == 0:print jfor i in range(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编程之找完数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Epicor ERP 学习笔记
- 下一篇: python的对文档密码的简单破解