Python練習題 分解質因數 選自藍橋杯

2021-10-03 07:12:58 字數 1557 閱讀 3451

題目要求:

要求:求出區間[a,b]中所有整數的質因數分解。

樣例輸入

3 10

樣例輸出

3=34=22

5=56=23

7=78=222

9=33

10=25

**圖:

這裡為了思路清晰直接採用定義類方法來實現

**如下:

class

fun(

object):

def__init__

(self)

: self.lst1=[2

]#存放素數

self.lst2=

#臨時存放分解的質因數

defmain

(self)

:#函式主體

a,b=

map(

int,

input()

.split(

' ')

)for num1 in

range(2

,b+1):

#收集素數

count=

2while count

if num1%count==0:

break

count+=

1if count==num1:

for num2 in

range

(a,b+1)

:#主要輸出函式

if num2 in self.lst1:

#如是素數情況下輸出

print

('%s=%s'

%(num2,num2)

)else

:#非素數情況下輸出

self.deal(num2)

#呼叫deal函式處理

str1=

'*'.join(self.lst2)

#將所有質因數轉化成字串方便輸出

print

('%s=%s'

%(num2,str1)

) self.lst2=

#清空列表,方便處理下乙個數

defdeal

(self,num=2)

:#處理函式,輸如乙個數字,獲得其全部質因數

for i in self.lst1:

if num%i==0:

str(i)

) s=num//i

if s in self.lst1:

str(s)

)break

else

: self.deal(s)

break

fun=fun(

)fun.main(

)

執行結果圖:

Python練習題013 分解質因數

將乙個正整數分解質因數。例如 輸入90,列印出90 233 5。將需要分解的數字從2開始遍歷,則分解的結果都會是質數。需要分解的數字是每一次上次分解之後的結果。比如,90有質因數2,之後用45分解質因數,會得到15,15再去分解質因數。n int input 請輸入需要分解的數字 print for...

基礎練習 分解質因數

基礎練習 分解質因數 時間限制 1.0s 記憶體限制 512.0mb 問題描述 求出區間 a,b 中所有整數的質因數分解。輸入格式 輸入兩個整數a,b。輸出格式 每行輸出乙個數的分解,形如k a1 a2 a3.a1 a2 a3.k也是從小到大的 具體可看樣例 樣例輸入 3 10 樣例輸出 3 34 ...

基礎練習 分解質因數

題目鏈結藍橋杯 基礎練習 題解 問題描述 求出區間 a,b 中所有整數的質因數分解。include using namespace std int a 10000 int main int argc,char argv for int i m i n i int num i 每次數值會發生改變,故用...