解説
桁の素数 と非負整数 を用いて と表せるか判定すれば良いです。
よって、以下のアルゴリズムが正当です。
- の順に以下を繰り返す。
- が で割り切れるあいだ、 に更新することを繰り返す。
- 最終的に となれば
Yesと、そうでなければNoと答える。
各ケースごとに高々 回の割り算で済むので、この解法は十分高速です。
実装例 (Python3)
def solve(N):
for p in (2, 3, 5, 7):
while N % p == 0:
N //= p
if N == 1:
print("Yes")
else:
print("No")
T = int(input())
for _ in range(T):
N = int(input())
solve(N)
ユーザー解説
ユーザー解説を書くユーザー解説はまだありません。