見出し画像

【python】で素因数分解~コード付き~

昔作ったものがあったので紹介します
さっそくコードをどうぞ

import math
print("0で終わり")
def hajime():
    A=int(input(">"))
    if A==0:
        print("END")
        input()
        exit()
    if A<0:
        A/=-1
        print(-1)
    while A%2==0:
        A/=2
        print(2)
    for B in range(3,math.ceil(math.sqrt(A))+2,2):
        while A%B==0:
            A/=B
            print(B)
            if A==1:
                hajime()
    print(int(A))
    hajime()
hajime()

ここでは、素因数分解する関数をhajimeとしています。
四行目でAにプレイヤーから素因数分解してほしい数をうけとり、代入します。
その後は、Aの平方根まで順に試していき、素因数分解をしていきます。
関数hajimeの中にhajime()があるのは、再帰といい、これによって、hajimeの中でhajimeが呼び出され、無限に繰り返すことができるのです。

皆さんもコピペして試してみてください。もちろん人間が素因数分解をするよいりもはるかに早くすることができます。

皆さんのなにか参考になればと思います。

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