вынес primes в utils

master
serr 2025-02-19 21:00:28 +03:00
parent 8d511b82fc
commit 62138fab43
4 changed files with 16 additions and 26 deletions

3
.gitignore vendored
View File

@ -1,2 +1,3 @@
__pycache__
var61.txt
var61.txt
dixon.py

View File

@ -1,18 +1,7 @@
# (p-1)-алгоритм Полларда, реализация _rho_minus_1_pollard из интернета
import time
from math import gcd
from utils import is_prime
def primes(B):
primes_list = []
is_prime = [True] * (B + 1)
is_prime[0] = is_prime[1] = False
for p in range(2, B + 1):
if is_prime[p]:
primes_list.append(p)
for i in range(p * p, B + 1, p):
is_prime[i] = False
return primes_list
from utils import is_prime, primes
def _rho_minus_1_pollard(n,
B_start=100,

View File

@ -1,7 +1,7 @@
# (p-1)-алгоритм Полларда, реализация _rho_minus_1_pollard по алгосу из презентации препода
import time
from math import gcd, log as ln
from utils import is_prime
from utils import is_prime, primes
import random
log = []
@ -10,17 +10,6 @@ def logger(i, p, l, b):
if len(log) > 10: log = log[:5] + log[-5:]
log.append(f'iter = {i}, p_i = {p}, l_i = {l}, B = {b}')
def primes(B):
primes_list = []
is_prime = [True] * (B + 1)
is_prime[0] = is_prime[1] = False
for p in range(2, B + 1):
if is_prime[p]:
primes_list.append(p)
for i in range(p * p, B + 1, p):
is_prime[i] = False
return primes_list
def _rho_minus_1_pollard(n,
B_start=100,
B_step=10,

View File

@ -16,4 +16,15 @@ def is_prime(N):
x = pow(x, 2, N)
if x == N - 1: break
else: return False
return True
return True
def primes(B):
primes_list = []
is_prime = [True] * (B + 1)
is_prime[0] = is_prime[1] = False
for p in range(2, B + 1):
if is_prime[p]:
primes_list.append(p)
for i in range(p * p, B + 1, p):
is_prime[i] = False
return primes_list