python之《類中遞迴實現整數最小因子的拆分》

2021-10-08 09:41:48 字數 1227 閱讀 4291

# -*- coding:utf-8 -*-

"""功能:整數最小因子拆分

例如:2*2*2*3=24

2*3=6

2*2*2*2*2*5*5=800

要求:輸入多組數值

"""from functools import

reduce

class

intnumber

:def

__init__

(self,n)

: self.n = n

@staticmethod

defintsplit

(n):

""" 拆分整數(遞迴)

"""for i in

range(2

,int

(n//2+

1)):

if n%i ==0:

return intnumber.intsplit(n/i)

#print(n) #此處的為最後一次迭代的值

defformatoutput

(self,re_list)

:"""

格式化輸出

"""int(self.n/

reduce

(lambda x,y:x*y,re_list)))

for i in

range(1

,len

(re_list)):

if i ==

len(re_list)-1

:print

(f""

,end="")

else

:print

(f"*"

,end="")

print

(f"="

)if __name__ ==

"__main__"

:while

true

: re_list =[1

]#此次變數不能定義在迴圈外。如果定義在迴圈外,

#則每次的值都會追加到列表中,從而引起結果的差異

try:

n =int(

input()

) c = intnumber(n)

intnumber.intsplit(n)

c.formatoutput(re_list)

except

:break

python整數劃分,遞迴演算法

正整數n,n m1 m2 mk,其中mi為正整數,並且1 mi n,集合是整數n的乙個劃分。輸入乙個不小於10的整數,輸出其所有整數劃分。將整數n劃分,假設某種劃分中m為最大的整數,則 n可分為n m,m,n m 再由 m 1 劃分 n m 可分為 n m m 1 m 1 n m m 1 再由 m ...

Python中物件導向之類

1.建構函式案例 class complex def init self,real,imag 此處要記得寫引數self self.r real self.i imag print 建構函式被呼叫 x complex 3.0,4.5 print x.r,x.i 2.析構函式 案例class compl...

python遞迴實現 遞迴演算法 python實現

在函式的定義中對這個函式自身的呼叫,就是遞迴。遞迴結構中,遞迴的部分必須比原來的整體簡單,才有可能到達某種終結點 出口 而且必須存在非遞迴的基本結構構成的部分,否則會無限遞迴。學習目標 程式設計實現斐波那契數列求值 f n f n 1 f n 2 程式設計實現求階乘 n 程式設計實現一組資料集合的全...