【ABC193 C】「Unexpressed」を解く【Python3】

「AtCoder」解説一覧へ

1以上N以下の整数のうち、abと表せないものがいくつあるか答える問題です。

提出
n = int(input())
s = set()
a = 2

while a**2 <= n:
    b = 2
    while a**b <= n:
        s.add(a**b)
        b += 1
    a += 1

print(n-len(s))

abと表せるものの数を数えて、Nから引いて求めるという方法を使います。

重複を避けるために、set型のオブジェクトを生成します。

while文を用いて、N以下のabを全探索していきます。

N以下のabをすべて「s」に加えていき、最後にlen() で要素数を求めてnから引いたものを出力します。

【ABC193】解説記事リスト

「AtCoder」解説一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です