вынес primes в utils
parent
8d511b82fc
commit
62138fab43
|
@ -1,2 +1,3 @@
|
||||||
__pycache__
|
__pycache__
|
||||||
var61.txt
|
var61.txt
|
||||||
|
dixon.py
|
|
@ -1,18 +1,7 @@
|
||||||
# (p-1)-алгоритм Полларда, реализация _rho_minus_1_pollard из интернета
|
# (p-1)-алгоритм Полларда, реализация _rho_minus_1_pollard из интернета
|
||||||
import time
|
import time
|
||||||
from math import gcd
|
from math import gcd
|
||||||
from utils import is_prime
|
from utils import is_prime, primes
|
||||||
|
|
||||||
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,
|
def _rho_minus_1_pollard(n,
|
||||||
B_start=100,
|
B_start=100,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# (p-1)-алгоритм Полларда, реализация _rho_minus_1_pollard по алгосу из презентации препода
|
# (p-1)-алгоритм Полларда, реализация _rho_minus_1_pollard по алгосу из презентации препода
|
||||||
import time
|
import time
|
||||||
from math import gcd, log as ln
|
from math import gcd, log as ln
|
||||||
from utils import is_prime
|
from utils import is_prime, primes
|
||||||
import random
|
import random
|
||||||
|
|
||||||
log = []
|
log = []
|
||||||
|
@ -10,17 +10,6 @@ def logger(i, p, l, b):
|
||||||
if len(log) > 10: log = log[:5] + log[-5:]
|
if len(log) > 10: log = log[:5] + log[-5:]
|
||||||
log.append(f'iter = {i}, p_i = {p}, l_i = {l}, B = {b}')
|
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,
|
def _rho_minus_1_pollard(n,
|
||||||
B_start=100,
|
B_start=100,
|
||||||
B_step=10,
|
B_step=10,
|
||||||
|
|
11
utils.py
11
utils.py
|
@ -17,3 +17,14 @@ def is_prime(N):
|
||||||
if x == N - 1: break
|
if x == N - 1: break
|
||||||
else: return False
|
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
|
Loading…
Reference in New Issue