結果
| 問題 |
No.8093 Please GCD
|
| コンテスト | |
| ユーザー |
tnodino
|
| 提出日時 | 2022-04-01 22:01:44 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,162 bytes |
| コンパイル時間 | 377 ms |
| コンパイル使用メモリ | 82,024 KB |
| 実行使用メモリ | 91,084 KB |
| 平均クエリ数 | 212.23 |
| 最終ジャッジ日時 | 2024-11-20 09:18:22 |
| 合計ジャッジ時間 | 8,003 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 9 WA * 21 |
ソースコード
from math import sqrt
def Question(x):
print(f'? {x}')
return int(input())
def Answer(x):
print(f'! {x}')
exit()
def Operator1(x):
S = []
for i in range(2,int(sqrt(x))+1):
while x % i == 0:
S.append(i)
x //= i
if x >= 2:
S.append(x)
for bit in range(1<<len(S)):
x = bit
z = 1
for i in S:
if x & 1:
z *= i
x >>= 1
P[z] = 0
def Operator2(x):
M = x
S = []
for i in range(2,int(sqrt(x))+1):
while x % i == 0:
S.append(i)
x //= i
if x >= 2:
S.append(x)
T = []
for bit in range(1<<len(S)):
x = bit
z = 1
for i in S:
if x & 1:
z *= i
x >>= 1
T.append(z)
for i in range(1,M+1):
if not i in T:
P[i] = 0
N = int(input())
P = [1] * (N+1)
for i in range(N,0,-1):
if P[i]:
if Question(i) == 1:
Operator1(i)
else:
Operator2(i)
for i in range(N,0,-1):
if P[i]:
if Question(i) == i:
Answer(i)
Answer(1)
tnodino