結果
問題 | No.3102 floor sqrt xor |
ユーザー |
![]() |
提出日時 | 2025-04-11 21:57:07 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 37 ms / 2,000 ms |
コード長 | 908 bytes |
コンパイル時間 | 281 ms |
コンパイル使用メモリ | 82,664 KB |
実行使用メモリ | 54,384 KB |
最終ジャッジ日時 | 2025-04-11 21:57:10 |
合計ジャッジ時間 | 2,394 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 30 |
ソースコード
from math import isqrt for _ in range(int(input())): n = int(input()) if n == 0: print(0) continue s = isqrt(n) - 1 for _ in range(3): s2 = s * s rest = n ^ s ^ s2 ans = s2 ^ rest if s2 <= ans <= s2 + 2 * s: # ok += 1 print(ans) break s += 1 else: print(-1) # M = 100000 # ok = 0 # for n in range(1, M): # s = isqrt(n) - 1 # for _ in range(3): # s2 = s * s # rest = n ^ s ^ s2 # ans = s2 ^ rest # if s2 <= ans <= s2 + 2 * s: # ok += 1 # break # s += 1 # # else: # # print(n) # print(ok) # # ok = 0 # # for n in range(1, M): # # for k in range(10 * n + 1): # # sk = isqrt(k) # # if k ^ sk == n: # # # print(n, k) # # ok += 1 # # break # # print(ok)