ABC097-B - Exponential を解く
ABC097-B - Exponential
正整数 X 以下のべき乗数を求める問題
べき乗数とは b^p( 1 <= b , 2 <= p )で表せる数を指す
制約内で考えられるべき乗数を全列挙して、最大のものを出力する
という方針で解くことにする
べき乗数を列挙するとき、1のべき乗のパターンは別に考えておかないと
無限ループの恐れがあるので注意する(1は何乗しても1なので)
以上を踏まえて書いたコードを以下に示す
提出したコード
# 入力 X=int(input()) # 最大値(1のべき乗数で初期化) mx=1 # 2〜1000 for a in range(2,1000): i=2 while True: # べき乗 b=pow(a,i) # X以下の場合、最大値保存 if b<=X: mx=max(mx,b) else: # Xをオーバーした場合はループを抜ける break i+=1 # 最大値を出力 print(mx)
提出結果はACでした