結果

問題 No.3236 累乗数大好きbot
ユーザー 👑 loop0919
提出日時 2025-08-15 22:33:29
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 835 bytes
コンパイル時間 176 ms
コンパイル使用メモリ 82,316 KB
実行使用メモリ 97,236 KB
最終ジャッジ日時 2025-08-15 22:33:48
合計ジャッジ時間 12,272 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 6 TLE * 1 -- * 24
権限があれば一括ダウンロードができます

ソースコード

diff #

from collections import defaultdict
from math import gcd, isqrt


def sieve(n: int):
    """エラトステネスの篩(O(n log log n))"""
    is_prime = [True] * (n + 1)
    is_prime[0] = is_prime[1] = False
    for i in range(2, isqrt(n) + 1):
        if is_prime[i]:
            for j in range(i * i, n + 1, i):
                is_prime[j] = False
    return [i for i in range(n + 1) if is_prime[i]]


primes = sieve(10**6)


def weak_factorize(n: int) -> defaultdict[int, int]:
    factors = defaultdict(int)
    for p in primes:
        if p * p > n:
            break
        while n % p == 0:
            factors[p] += 1
            n //= p
    if n > 1:
        factors[n] += 1
    return factors


Q = int(input())

for _ in range(Q):
    N = int(input())
    factors = weak_factorize(N)
    print(gcd(*factors.values()))
0