python基礎程式設計 11 任意正整數的因數分解

2021-08-17 15:07:22 字數 1097 閱讀 9692

把乙個合數分解成若干個質因數的乘積的形式,即求質因數的過程叫做分解質因數。

python練習題問題如下:

要求:將乙個正整數分解質因數;例如您輸入90,分解列印90=2*3*3*5。

python解題思路分析:

這道題需要分三部分來分解,具體分解說明如下。

1、首先當這個質數恰等於n的情況下,則說明分解質因數的過程已經結束,列印出即可。

2、如果遇到n>=k,但n能被k整除的情況,則應列印出k的值。同時用n除以k的商作為新的正整數你n,之後再重複執行該步的操作直到符合1。

def reducenum(n):

'''策略:求解n的因式分解,首先從2開始到n遍歷,

如果n%某乙個數的結果是整數,則列印出該數,同時n=n/該數

直到n==1結束

'''a='{} = '.format(n)

#判斷n是否為正整數

if not isinstance(n, int) or n <= 0 :

print ('請輸入乙個正確的數字 !')

exit(0)

#排除n的值為1 的特殊情況

elif n in [1] :

a+='{}'.format(n)

#n的值不為1的正整數

while n not in [1] : # 迴圈保證遞迴

for temp in range(2, n + 1) :

if n % temp == 0:#更改n的值,同時記錄下它的因數並跳出for迴圈

n =int( n/temp)# n 等於 n/temp

if n == 1: #此時n的值大小和因數相同,作為末尾因數

a+=str(temp)

else : # index 一定是因數

a+='{} *'.format(temp)

break

print(a)

reducenum(999)

reducenum(90)

999 = 3 *3 *3 *37

90 = 2 *3 *3 *5

Python基礎(11)模組

全域性變數 title 模組1 函式 defsay hello print 我是 s title 類class dog object pass 全域性變數 title 模組2 函式 defsay hello print 我是 s title 類class cat object passimport ...

python華為程式設計 程式設計 python基礎教程

python匯入模組的3種方式 超級詳細 在編寫完python模組之後,如果直接用 import 或 from.import 來匯入該模組,有時並不能正確地載入該模組。道理很簡單,僅通過我們提供的模組檔名,python 無法找到該模組檔案。程式設計其實並不難,就是用合適的語法告訴計算機,讓它幫助完成...

python 程式設計基礎

1.是單行注釋 2.內容 是多行注釋 1.乙個邏輯行可以占有多個物理行 用 分開 a this is life 當邏輯行使用括號時 包括圓括號 花括號 中括號 a a,b,c 2.乙個物理行建議只包含乙個邏輯行 多個邏輯行可以用 隔開 i 5 print i 1.盡量選擇乙個tab鍵或者4個空格鍵 ...