From 493e68f619e8d20dd46dc4e158765c429f5c0187 Mon Sep 17 00:00:00 2001 From: serr Date: Fri, 10 Jan 2025 22:23:06 +0300 Subject: [PATCH] add second example --- Legendre_symbol.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/Legendre_symbol.py b/Legendre_symbol.py index 988b003..c0fd89e 100644 --- a/Legendre_symbol.py +++ b/Legendre_symbol.py @@ -1,4 +1,5 @@ import sys, re + # Возвращает абсолютно наименьший вычет числа a по модулю числа b def v(a, b): r1 = a % b @@ -11,4 +12,28 @@ def solve(a, p): return pow(-1, cnt) f = re.fullmatch(r'(\d+)/(\d+)', sys.argv[1]).groups() -print(solve(int(f[0]), int(f[1]))) \ No newline at end of file +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)) \ No newline at end of file