結果
| 問題 |
No.109 N! mod M
|
| コンテスト | |
| ユーザー |
ayaoni
|
| 提出日時 | 2021-08-31 20:39:27 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 171 ms / 5,000 ms |
| コード長 | 950 bytes |
| コンパイル時間 | 395 ms |
| コンパイル使用メモリ | 81,920 KB |
| 実行使用メモリ | 59,776 KB |
| 最終ジャッジ日時 | 2024-11-26 03:17:57 |
| 合計ジャッジ時間 | 1,501 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 9 |
ソースコード
import sys
def I(): return int(sys.stdin.readline().rstrip())
def MI(): return map(int,sys.stdin.readline().rstrip().split())
def LI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def LI2(): return list(map(int,sys.stdin.readline().rstrip()))
def S(): return sys.stdin.readline().rstrip()
def LS(): return list(sys.stdin.readline().rstrip().split())
def LS2(): return list(sys.stdin.readline().rstrip())
def is_prime(n):
for i in range(2,int(n**.5)+1):
if n % i == 0:
return False
return True
T = I()
for _ in range(T):
N,M = MI()
if M == 1 or N >= M:
ans = 0
elif M <= 2*10**5:
ans = 1
for i in range(1,N+1):
ans *= i
ans %= M
else:
if is_prime(M):
a = -1
for i in range(N+1,M):
a *= i
a %= M
ans = pow(a,M-2,M)
else:
ans = 0
print(ans)
ayaoni