結果
| 問題 | No.1140 EXPotentiaLLL! |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-01-28 18:06:31 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,904 ms / 2,000 ms |
| コード長 | 975 bytes |
| コンパイル時間 | 264 ms |
| コンパイル使用メモリ | 81,996 KB |
| 実行使用メモリ | 116,584 KB |
| 最終ジャッジ日時 | 2024-06-26 02:22:02 |
| 合計ジャッジ時間 | 18,263 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 12 |
ソースコード
from collections import defaultdict
import math
def Sieve_of_Eratosthenes(maxA):
lst = [-1]*(maxA+1)
lst[0] = 0
lst[1] = 1
for i in range(2, maxA+1):
if lst[i] == -1:
for g in range(i, maxA+1, i):
if lst[g] == -1:
lst[g] = i
return lst
def is_prime(n):
d = defaultdict(int)
now = n
while True:
if now == lst[now]:
if now != 1:
d[now] += 1
break
r = lst[now]
while now % r == 0:
now //= r
d[r] += 1
if d[r] > 1 or len(d) > 1:
return False
if len(d) == 1:
return True
else:
return False
maxA = 5*10**6 + 1
lst = Sieve_of_Eratosthenes(maxA)
t = int(input())
for _ in range(t):
a, p = map(int, input().split())
if is_prime(p):
if math.gcd(a, p) == 1:
print(1)
else:
print(0)
else:
print(-1)