Just for fun——分解一個正整數的質因數

Reason

爲何我要記錄這個問題,由於以前面試的時候遇到過,當時本身寫的算法很差,因此,在此記錄一下php

Answer

代碼是基於python3寫的(人生苦短,寫算法請用python,web的話請用php ^_^)python

def prime(n):
    l = []
    while n > 1:
        for i in range(2, n + 1):
            if n % i == 0:
                n = int(n / i)
                l.append(i)
                break
    return l
    
    
print(prime(1020)) # [2, 2, 3, 5, 17]

Explanation

從最小質數2開始,若是num能被i整除,則num = num / i,不能則i += 1
這裏你可能有疑問,若是一個數被6整除了呢,那麼它加入這個list不久不對了嘛?
可是你應該意識到,被6能整除,它確定被它的質數整除了,咱們是從最小質數開始的web

相關文章
相關標籤/搜索