本來想實現乙個其它的基本數學演算法問題,但是發現在實現之前必須得先完成分解質因式的演算法。
沒有去網上尋找什麼比較好的求解演算法,純粹是按照自己的理解寫了乙個試探性求解演算法。也就是在mit公開課中教授提到的guess-try方法。**實現如下:
#!/usr/bin/python
def primenum(num):
r_value =
for i inrange(2,num+1):
for jin range(2,i):
ifi % j == 0:
break
else:
returnr_value
def primefactorsolve(num,prime_list):
for n inprime_list:
ifnum % n == 0:
return[n,num / n]
def primedivisor(num):
prime_range= primenum(num)
ret_vale =
while numnot in prime_range:
factor_list= primefactorsolve(num,prime_range)
num =factor_list[1]
else:
printret_vale
primedivisor(120)
程式執行結果如下:
e:\workspace\01_程式語言\03_python\python_exp07>pythonpython_exp07.py
[2, 2, 2, 3, 5]
抽取測試了其他的資料,從簡單的例子計算看,結果還是準確的。
階乘因式分解
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 給定兩個數n,m,其中m是乙個素數。將n 0 n 2 31 的階乘分解質因數,求其中有多少個m。注 為求冪符號。輸入 第一行是乙個整數s 0 輸出輸出m的個數 樣例輸入 3 100 5 16 2 1000000000 13 樣例...
因式分解總結
因式分解其實是乙個很簡單的應用,這裡做一下小小的總結 計算乙個數的所有因子 這裡只需要找到這個數的平方根的因子,然後再用該數分別除以每個因子,就會找到每個因子對應的另乙個因子 int a 10000 num 0 儲存n的因子 void factor int n a中從0到num 1儲存了n的所有因子...
階乘因式分解
描述 給定兩個數m,n,其中m是乙個素數。將n 0 n 10000 的階乘分解質因數,求其中有多少個m。輸入 第一行是乙個整數s 0 輸出輸出m的個數。樣例輸入 2 100 5 16 2 樣例輸出 24 15 includeint main printf d n sum return 0 剛看到這道...