29 lines
No EOL
590 B
Python
29 lines
No EOL
590 B
Python
import sys
|
|
from array import array
|
|
|
|
data = sys.stdin.read().split()
|
|
p = int(data[0])
|
|
if p == 2:
|
|
print(1)
|
|
sys.exit(0)
|
|
half = p // 2 + 1
|
|
inv = array('i', [0] * half)
|
|
inv[1] = 1
|
|
current_sum = 0
|
|
count = 0
|
|
for i in range(1, p):
|
|
if i == 1:
|
|
val = 1
|
|
elif i < half:
|
|
inv[i] = (p - (p // i) * inv[p % i]) % p
|
|
val = inv[i]
|
|
else:
|
|
val = (p - (p // i) * inv[p % i]) % p
|
|
current_sum = (current_sum + val) % p
|
|
count += 1
|
|
if count == 100:
|
|
print(current_sum)
|
|
current_sum = 0
|
|
count = 0
|
|
if count > 0:
|
|
print(current_sum) |