題目要求:
要求:求出區間[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 每次數值會發生改變,故用...