def main(): temp = 600851475143 primes = libeuler.primeNumGen(int(math.sqrt(temp))) for i in primes[::-1]: if temp % i == 0: print(i) break
def main(): result = 0 primes = libeuler.primeNumGen(7654321) for i in primes[::-1]: if len(set(str(i))) == len(str(i)) and isPandigital(i): result = i break print(result)
def main(): primes = libeuler.primeNumGen(10000) primes = [x for x in primes if len(str(x)) == 4] primeset = set(primes) used = [ ] for i in primes: if (i + 3330) in primeset and (i + 6660) in primeset: perms = all_perms(str(i)) if str(i+3330) in perms and str(i+6660) in perms: print(i, i+3330, i+6660)
def main(): i = 1 num = 0 numdivisors = 0 primes = libeuler.primeNumGen(2**16) while numdivisors < 500: num += i i += 1 numdivisors = libeuler.getNumDivisors(num, primes) print(numdivisors, num)
def main(): primes = libeuler.primeNumGen(10**6) shortprimes = libeuler.primeNumGen(10**4) priLen = len(shortprimes) setprimes = set(primes) maxprime = primes[-1] blah = 99999999999 for i in range(priLen): ii = str(primes[i]) for j in range(i+1, priLen): jj = str(primes[j]) if not validPair(setprimes, maxprime, ii, jj): continue for k in range(j+1, priLen): kk = str(primes[k]) if (not validPair(setprimes, maxprime, ii, kk) or not validPair(setprimes, maxprime, jj, kk)): continue for l in range(k+1, priLen): ll = str(primes[l]) if (not validPair(setprimes, maxprime, ii, ll) or not validPair(setprimes, maxprime, jj, ll) or not validPair(setprimes, maxprime, kk, ll)): continue for m in range(l+1, priLen): mm = str(primes[m]) if (not validPair(setprimes, maxprime, ii, mm) or not validPair(setprimes, maxprime, jj, mm) or not validPair(setprimes, maxprime, kk, mm) or not validPair(setprimes, maxprime, ll, mm)): continue print(ii, jj, kk, ll, mm) if blah > primes[i] + primes[j] + primes[k] + primes[l] + primes[m]: blah = primes[i]+primes[j]+primes[k]+primes[l]+primes[m] print(blah)
def main(): primes = libeuler.primeNumGen(10 ** 6) setprimes = set(primes) for prime in primes: for i in range(10): temp = 0 if str(i) not in str(prime): continue primesToCheck = numsToCheck(prime, i) for j in primesToCheck: if int(j) in setprimes and int(j) > prime: temp += 1 if temp == 7: print(prime) return
def main(): primes = libeuler.primeNumGen(10**6) setprimes = set(primes) maxconnums = 0 num = 0 for i in range(0, len(primes)): if maxconnums > len(primes)-i: break temp = primes[i] added = 1 for j in range(i+1, len(primes)): temp += primes[j] added += 1 if temp > 1000000: break if temp in setprimes and added > maxconnums: maxconnums = added num = temp print(maxconnums, num)
def main(): primes = libeuler.primeNumGen(10000) primeset = set(primes) for i in range(9, 10000, 2): # odd numbers if i in primeset: continue x = False for j in primes: if j > i: break for k in range(1,i-j): temp = j + 2 * k * k if temp == i: x = True break elif temp > i: break if x: break if not x: print(i) return
def main(): limit = 10**6 primes = libeuler.primeNumGen(limit) a = Queue() b = Queue() c = Queue() i = Process(target=worker, args=(range(2, limit+1, 3), primes, a)) j = Process(target=worker, args=(range(3, limit+1, 3), primes, b)) k = Process(target=worker, args=(range(4, limit+1, 3), primes, c)) i.start() j.start() k.start() i.join() j.join() k.join() print(a.get()) print(b.get()) print(c.get())
def main(): numfactors = 0 consecprimes = 0 index = 1 primes = libeuler.primeNumGen(10**6) primeset = set(primes) while consecprimes < 4: if index in primeset: index += 1 consecprimes = 0 continue numfactors = len(set(libeuler.primeFactorization(index, primes))) if numfactors == 4: consecprimes += 1 else: consecprimes = 0 index += 1 print(index-4)
def main(): count = 1 #because of 2 primes = libeuler.primeNumGen(1000000) setprimes = set(primes) # takes out any primes that have an even digit in them finalprimes = [ ] for x in primes: blah = True for y in str(x): if int(y) % 2 == 0: blah = False break if blah: finalprimes.append(x) for x in finalprimes: if iscircularprime(x, setprimes): count += 1 print(count)
def main(): primes = libeuler.primeNumGen(1000000) setprimes = set(primes) result = [ ] # cant be truncatable primes.remove(2) primes.remove(3) primes.remove(5) primes.remove(7) for prime in primes: truncable = True for x in range(1, len(str(prime))): if int(str(prime)[x:]) in setprimes: if int(str(prime)[:x]) in setprimes: continue truncable = False break if truncable: result.append(prime) print(result) print(sum(result))
def main(): print(sum(libeuler.primeNumGen(2*10**6)))