見出し画像

素因数分解python


48をpythonで素因数分解してみます。

def   factor(n):
    if  n==1:
        return [1]
    result=[]#結果を格納するリスト]
    
    div=2   #2から順に割り始める
    while  div*div<=n:
        if  n%div==0:
            result.append(div)#割り切れたらリストに追加
            n=n//div
        else:
            div=div+1#割り切れなければ次の数に移る
    if    n!=1:
        result.append(n)#最後に残った数を追加
  
  
    print(result)#結果を表示
factor(48)   #関数呼び出し 

下記は入力した数を素因数分解するpythonコード


def prime_factors(n):
    factors = []
    # 2で割り切れる限り割る
    while n % 2 == 0:
        factors.append(2)
        n = n // 2
    # 3以上の奇数で割り切れる限り割る
    for i in range(3, int(n**0.5) + 1, 2):
        while n % i == 0:
            factors.append(i)
            n = n // i
    # 最後にnが素数の場合、それを追加
    if n > 2:
        factors.append(n)
    return factors

# 入力された数を素因数分解
number = int(input("素因数分解する数を入力してください: "))
factors = prime_factors(number)
print(f"{number} の素因数分解: {factors}")

いいなと思ったら応援しよう!