add second example

main
serr 2025-01-10 22:23:06 +03:00
parent 3641605982
commit 493e68f619
1 changed files with 26 additions and 1 deletions

View File

@ -1,4 +1,5 @@
import sys, re import sys, re
# Возвращает абсолютно наименьший вычет числа a по модулю числа b # Возвращает абсолютно наименьший вычет числа a по модулю числа b
def v(a, b): def v(a, b):
r1 = a % b r1 = a % b
@ -12,3 +13,27 @@ def solve(a, p):
f = re.fullmatch(r'(\d+)/(\d+)', sys.argv[1]).groups() f = re.fullmatch(r'(\d+)/(\d+)', sys.argv[1]).groups()
print(solve(int(f[0]), int(f[1]))) print(solve(int(f[0]), int(f[1])))
# Более длинное, но подробное решение
# # Вернет систему абсолютно наименьших вычетов числа
# def system(a):
# if a % 2:
# return [i for i in range(-(a-1)//2, (a-1)//2+1)]
# else:
# return [i for i in range(-a//2+1, a//2+1)]
# # Возвращает абсолютно наименьший вычет числа a по модулю числа b
# def v(a, b):
# s = system(b)
# for e in s:
# if a % b == e % b:
# return e
# def legendre(a, p):
# count = 0
# for i in range(1, (p-1)//2+1):
# if v(i*a, p) < 0:
# count += 1
# return pow(-1, count)
# print(legendre(11,347))