Skip to content

Commit 975bcd0

Browse files
committed
Update dixon.py
1 parent 4024628 commit 975bcd0

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

dixon.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from gmpy2 import isqrt,gcd,next_prime
22
import sys
33

4-
def dixon(N,B=100):
4+
def dixon(N,B=7):
55

66
tmp = []
77
pairs = []
@@ -15,23 +15,28 @@ def primes(B):
1515
return tmp
1616

1717
base = primes(B)
18+
19+
#print(base)
1820

1921
start = isqrt(N)
2022
i = start
2123
while i<=N:
2224
for j in range(len(base)):
2325
l = pow(i,2, N)
2426
r = pow(base[j],2,N)
27+
#print(i,j,l,r)
2528
if l == r:
2629
pairs.append([i,base[j]])
27-
print(pairs)
30+
#print(pairs)
2831
i+=1
2932

33+
#print(pairs)
34+
3035
for i in range(len(pairs)):
3136
x = pairs[i][0]
3237
y = pairs[i][1]
33-
tmp.append(gcd(x-y,N))
34-
35-
return tmp
38+
f = (gcd(x-y,N))
39+
if 1 < f < N:
40+
return f,N//f
3641

3742
print(dixon(int(sys.argv[1])))

0 commit comments

Comments
 (0)