![見出し画像](https://assets.st-note.com/production/uploads/images/167527328/rectangle_large_type_2_bfb3c5cf059108ffcc2ef163fe0cf3f9.jpeg?width=1200)
素因数分解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}")