[白俊]B 3-2061


質問する


暗号化方式の多くは少数利用である.通常、非常に大きな2つの素数が選択され、2つの素数が乗算された値が暗号化の鍵として使用されます.この方法が良い原因は通常大きな数を分解することが難しいからである.
小数を選択したときに大きな数を選択すると、この2つを乗じたキー値も大きくなります.しかし、逆になる可能性もある.すなわち,キー値が大きくても小数に分解しやすい.
したがって,暗号ゲートが解読されないように鍵値が適当な大数の積であるかを確認する必要がある.キー値Kと整数Lが与えられている場合、Kを引数に分解する場合は、常にLより大きい値で構成されていることを確認する必要があります.もちろん、因数分解を行う場合、1を1で割った場合は考えられない.
例えば、K=143の場合、11と13の積からなる.つまり、それを分解する方法は11×13143の2つのケースしかありません.したがって、Lが11であれば、因数分解時に現れる数字はいずれもLより大きくなることが好ましいが、Lが12より大きいと良いパスワードではない.
KとLが与えられた場合は、良いパスワードかどうかを判断するプログラムを作成してください.

入力


第1行は2つの整数K,Lを与える.

しゅつりょく


良いパスワードであればGOODを出力します.悪いパスワードであればBADを出力し、Kの最小(1ではなく)パラメータを出力します.

制限


4 ≤ K ≤ 10100
2 ≤ L ≤ 1,000,000

に答える


K, L = map(int, input().split())
flag = True
for i in range(2, L):
    if K % i == 0:
        print("BAD", i)
        flag = False
        break
if flag is True:
    print("GOOD")
問題を解くときは和弦に詳しいと思い、B 3-1837と全く同じです.何か違う問題がありますか...?