Baek Junアルゴリズム|11653号-素数分解


Backjunアルゴリズム11653号:分解素数python


Backjunアルゴリズム11653号:素数分解問題を迅速に解く

解答方法


整数nを入力する場合は、nを小数に分解し、結果を行単位で出力する必要があります.

  • nを2からn−1の数字(i)に分ける.このとき、残りの値が0の場合、iが出力される.

  • nをiで割った値(シェア)をnに格納する.

  • 残りが0でない場合はiの値を上げます.iの値が2の場合は1を上げ、iの値が2を超える場合は2を上げる.(2以外の偶数は少数ではないので、確認する必要はありません.)

  • 上記の手順を繰り返します.

  • nが1の場合、プログラムを終了します.

  • ソースコード

    n = int(input())
    i=2
    while(True):
        if (n % i == 0):
            print(i)
            n=n//i
        else:
            if i>2: i+=2
            else: i+=1
    
        if n==1:
            break;