結果
問題 |
No.3115 One Power One Kill
|
ユーザー |
👑 ![]() |
提出日時 | 2025-04-19 02:48:06 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,236 bytes |
コンパイル時間 | 518 ms |
コンパイル使用メモリ | 82,324 KB |
実行使用メモリ | 84,320 KB |
平均クエリ数 | 1.00 |
最終ジャッジ日時 | 2025-04-19 02:48:12 |
合計ジャッジ時間 | 5,738 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | RE * 20 |
ソースコード
""" https://yukicoder.me/problems/no/3115 まぁギャグだとは思うが Xが大きい素数の時、3では1が返ってくるのでそれを前提に考えよう まぁフェルマーの小定理 X^A mod B Bを素数にしておいて、A = B-1 にすると X' が1になってくれる場合が多い XがBの倍数の時 (xB)^(B-1) mod B は0になる?? gcd(X,Y) だけで、Xの倍数かチェックしないといけない """ """ def Sieve(n): #n以下の素数全列挙(O(nloglogn)) retは素数が入ってる。divlisはその数字の素因数が一つ入ってる ret = [] divlis = [-1] * (n+1) #何で割ったかのリスト(初期値は-1) flag = [True] * (n+1) flag[0] = False flag[1] = False ind = 2 while ind <= n: if flag[ind]: ret.append(ind) ind2 = ind ** 2 while ind2 <= n: flag[ind2] = False divlis[ind2] = ind ind2 += ind ind += 1 return ret,divlis plis,_ = Sieve(10**5) for B in plis: A = B-1 if pow(A,B,10**9+7) % B == 0: print (B) """ print (88,89,flush=True) K = int(input()) if K % 89 == 0: print (0) else: print (1)