結果
問題 |
No.2751 429-like Number
|
ユーザー |
|
提出日時 | 2024-05-10 22:10:37 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,740 ms / 4,000 ms |
コード長 | 950 bytes |
コンパイル時間 | 372 ms |
コンパイル使用メモリ | 82,244 KB |
実行使用メモリ | 77,936 KB |
最終ジャッジ日時 | 2024-12-20 05:51:03 |
合計ジャッジ時間 | 8,886 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 22 |
ソースコード
import sys import math def sieve(n): is_prime = [True] * (n+1) p = 2 while (p * p <= n): if (is_prime[p] == True): for i in range(p * p, n+1, p): is_prime[i] = False p += 1 prime_numbers = [p for p in range(2, n+1) if is_prime[p]] return prime_numbers def count_prime_factors(n, primes): original_n = n count = 0 for p in primes: if p * p > n: break while (n % p == 0): n //= p count += 1 if n > 1: count += 1 return count def is_429_like(n, primes): return count_prime_factors(n, primes) == 3 input = sys.stdin.read data = input().split() Q = int(data[0]) A = list(map(int, data[1:])) primes = sieve(int(math.sqrt(10**10)) + 1) results = [] for a in A: if is_429_like(a, primes): results.append("Yes") else: results.append("No") sys.stdout.write("\n".join(results) + "\n")