分解質因數(python)

2021-09-12 18:28:01 字數 1161 閱讀 5072

#尋找質因數

def digui

(num)

:for i in

range(2

,int(1

+num/2)

):if num % i ==0:

print

('%d * '

%i,end ='')

num =

int(num / i)

digui

(num)

ifzspd

(num)!=1

:print

('%d'

%num)

break

#判斷乙個數是否是質數

def zspd

(shu)

: s =

0for i in

range(2

,int(1

+shu/2)

):if shu % i ==0:

s =1break

return s

num =

eval

(input

('請輸入乙個數:'))

ifzspd

(num)

!=1 and num !=1:

print

('%d = 1 * %d'

%(num,num)

)else

:print

('%d = '

%num,end ='')

digui

(num)

執行結果

請輸入乙個數:895648

895648 = 2 * 2 * 2 * 2 * 2 * 13 * 2153

請輸入乙個數:128

128 = 2 * 2 * 2 * 2 * 2 * 2 * 2

請輸入乙個數:125

125 = 5 * 5 * 5

請輸入乙個數:54576421

54576421 = 1 * 54576421

請輸入乙個數:7454317

7454317 = 13 * 573409

請輸入乙個數:100

100 = 2 * 2 * 5 * 5

請輸入乙個數:214

214 = 2 * 107

分解質因數

質因數概念 每個合數都可以寫成幾個質數相乘的形式,這幾個質數就都叫做這個合數的質因數。如果乙個質數是某個數的因數,那麼就說這個質數是這個數的質因數。而這個因數一定是乙個質數。演算法原理 先根據需要分解的合數生成乙個質數表。然後依次從小到大依次除合數,每次除之後都將儲存步驟。表達不好,還是看 吧 us...

分解質因數

分解質因數 問題描述 求出區間 a,b 中所有整數的質因數分解。輸入格式 輸入兩個整數a,b。輸出格式 每行輸出乙個數的分解,形如k a1 a2 a3.a1 a2 a3.k也是從小到大的 具體可看樣例 樣例輸入 3 10 樣例輸出 3 34 2 2 5 56 2 3 7 78 2 2 2 9 3 3...

分解質因數

大數的質因數分解一直以來是亟需解決的難題。本文從最基本的試除法開始,分解質因數的方法。下面的程式在開頭定義了乙個巨集opt,如果刪掉這個定義,就可以執行最原始的演算法。一 樸素演算法 include include include using namespace std define opt int...