Example #1
0
def main():
    temp = 600851475143
    primes = libeuler.primeNumGen(int(math.sqrt(temp)))
    
    for i in primes[::-1]:
        if temp % i == 0:
            print(i)
            break
Example #2
0
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)
Example #3
0
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)
Example #4
0
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)
Example #5
0
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)
Example #6
0
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
Example #7
0
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)
Example #8
0
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
Example #9
0
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())
Example #10
0
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)
Example #11
0
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)
Example #12
0
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))
Example #13
0
def main():
    print(sum(libeuler.primeNumGen(2*10**6)))