def alexandrian(n): R = [r**2 + 1 for r in range(n + 1)] P = eulertools.primesieve(n) R = [[] for r in range(n + 1)] for p in P: soln = eulertools.modsqrt_prime(-1, p) for s in soln: for k in xrange(s, n + 1, p): r2 = k**2 + 1 R[k].append(p) F = [] for r, V in enumerate(R): r2 = r**2 + 1 F.append(factors(r2, V)) output = set() for r, X in enumerate(F): if r == 0: continue r2 = r**2 + 1 for x in X: p = x + r q = (r2 / x) + r A = abs(r * p * q) if p * q - p * r - q * r != 1: raise output.add(A) return sorted(list(output))
def test(): P = eulertools.primesieve(10000) sol = 0 for x in range(2, 10001): if d(P, d(P, x)) == x and x != d(P, x): sol += x return sol
def test(): P = eulertools.primesieve(10000) sol = 0 for x in range(2,10001): if d(P,d(P,x))==x and x!= d(P,x): sol +=x return sol
def test(): P = set(eulertools.primesieve(10000)) max_counter = 0 for a in range(-100, 1000): for b in range(-100, 1000): x = 0 while True: f = x**2 + a * x + b if f not in P: break x += 1 if x > max_counter: max_counter = x #print x,a,b,a*b sol = a * b return sol
from eulertools import primesieve N = 10**9 Q = 100 P = primesieve(Q) prev = set([1]) solution = [prev] for i in range(1,100): new = set([a*p for p in P for a in prev if a*p <= N]) print i,len(new) if len(new)==0: break solution.append(new) prev = new solution = set.union(*solution) print len(solution)
for i in range(n): if i == 0: Q = (1, 2, 3, 4, 5, 6, 7, 8, 9) else: Q = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) for q in Q: sy = list(sx) sy[i] = str(q) y = int(''.join(sy)) if eulertools.is_prime(y): return False return True P = eulertools.primesieve(10**6) output = [] qMax = 10**12 for p1 in P: for p2 in P: if p1 != p2: q = (p1**2) * (p2**3) if q > qMax: break output.append((q, p1, p2)) output.sort() print len(output)
from eulertools import primesieve from math import factorial def nCr(n,r): return factorial(n)/(factorial(r)*factorial(n-r)) def containsFactor(x,F): for f in F: if x % f ==0: return True return False N = 51 P = primesieve(N) F = [p**2 for p in P] output = set([nCr(n,r) for n in range(0,N) for r in range(0,n+1)]) output = [a for a in output if not containsFactor(a,F)] print output print len(output) print sum(output)
import eulertools N = 10**8 P = eulertools.primesieve(N) counter = 0 print 'Go' for p1 in P: for p2 in P: if p2 > p1: break q = p1*p2 if q > N: break counter +=1 print counter
import eulertools import numpy nmax = 50 * 10**6 A = [0 for i in xrange(nmax + 1)] P = set(eulertools.primesieve(int(2**0.5 * nmax) + 1)) print len(P) print 'Done' for p in sorted(list(P)): if p > 2: roots = eulertools.modsqrt_prime((p + 1) / 2, p) if len(roots) > 0: for r in roots: if 2 * r * r - 1 in P: a = r + p else: a = r for s in xrange(a, nmax + 1, p): A[s] = 1 print nmax - sum(A) - 1
def test(): x = 600851475143 rootx = int(x**0.5) + 1 P = eulertools.primesieve(rootx) factors = [p for p in P if x % p == 0] return max(factors)
def test(): P = eulertools.primesieve(100) solution = shortest_length(P,47547) return solution
def test(): return sum(eulertools.primesieve(2000000))
from eulertools import primesieve N = 10**9 Q = 100 P = primesieve(Q) prev = set([1]) solution = [prev] for i in range(1, 100): new = set([a * p for p in P for a in prev if a * p <= N]) print i, len(new) if len(new) == 0: break solution.append(new) prev = new solution = set.union(*solution) print len(solution)
def test(): n = 10001 max_size = int(n * math.log(n * math.log(n))) A = eulertools.primesieve(max_size) return A[n - 1]
from itertools import combinations from eulertools import gcd, factorise, primesieve, product r = 12017639147 #r = 1000001 h = (r + 3) / 2 P = primesieve(int(h**0.5) + 1) F = set(factorise(P, h)) N = len(F) total = int(h / 3) print h, N, F for k in range(1, N + 1): for X in combinations(F, k): prod = product(X) term = int(2 * h / (3 * prod)) - int(h / (3 * prod)) sign = (-1)**k print X, k, sign, prod total += sign * term print total #print 80840
def test(): x = 600851475143 rootx = int(x**0.5)+1 P = eulertools.primesieve(rootx) factors = [p for p in P if x% p ==0] return max(factors)
import eulertools N = 10**8 P = eulertools.primesieve(N) counter = 0 print 'Go' for p1 in P: for p2 in P: if p2 > p1: break q = p1 * p2 if q > N: break counter += 1 print counter
import eulertools import numpy nmax = 50*10**6 A = [0 for i in xrange(nmax+1)] P = set(eulertools.primesieve(int(2**0.5*nmax)+1)) print len(P) print 'Done' for p in sorted(list(P)): if p>2: roots = eulertools.modsqrt_prime((p+1)/2,p) if len(roots)>0: for r in roots: if 2*r*r-1 in P: a = r+p else: a = r for s in xrange(a,nmax+1,p): A[s]=1 print nmax-sum(A)-1