❶ 使用python將一個正整數分解質因數。例如:輸入90,列印出90=2*3*3*5。應該要怎麼做
對n進行分解質因數,應先找到一個最小的質數k,然後按下述步驟完成:
(1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,列印出即可。
(2)如果n<>k,但n能被k整除,則應列印出k的值,並用n除以k的商,作為新的正整數你n,重復執行第一步。
(3)如果n不能被k整除,則用k+1作為k的值,重復執行第一步。
程序源代碼:
實例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def receNum(n):
print '{} = '.format(n),
if not isinstance(n, int) or n <= 0 :
print '請輸入一個正確的數字 !'
exit(0)
elif n in [1] :
print '{}'.format(n)
while n not in [1] : # 循環保證遞歸
for index in xrange(2, n + 1) :
if n % index == 0:
n /= index # n 等於 n/index
if n == 1:
print index
else : # index 一定是素數
print '{} *'.format(index),
break
receNum(90)
receNum(100)
以上實例輸出結果為:
90 = 2 * 3 * 3 * 5100 = 2 * 2 * 5 * 5
❷ python定義n為任意正整數
Python 設計一個計算⌊√n⌋的演算法,n是任意正整數。除了賦值和比較運算,該演算法只能用到基本的四則運算。
思路
1.先輸入一個正數n
2.a = 1
3.若a2 <n 轉第四步,若a2==n輸出a
4.a = a+1,轉第三步
代碼實現
#設計一個計算的演算法,n是任意正整數。除了賦值和比較運算,該演算法只能用到
❸ python將一個正整數分解質因數.
nnotin[1]就是n不等於1
print'{}*'.format(index)是在最後將輸入的n列印成質因數,就是變成1*2*5這種樣式