Beispiel #1
0
def solve(l=10):
 p = []
 c  = []
 mod = 10**9+7
 cap = 10**5+10**4
 mask = mark_primes(cap);
 for i in xrange(2,cap):
  if mask[i] and len(p) < l:
    p.append(digital_root(i))
  elif len(c) < l:
    c.append(digital_root(i))
 dirs = lcs_lens(p[::-1],c[::-1])
 seq = best_seq(dirs,p[::-1],c[::-1])
 return seq_to_ans(seq,mod)
Beispiel #2
0
import proj_euler as pe

cap = 10**5
mask = pe.mark_primes(cap)

tiles = [1]
st = 2
layer = 1
mLayers = 100000

def p_sum(d):
  s = 0
  for i in xrange(3):
    s += pe.is_prime(d[i],cap,mask)
  return s
  
for layer in xrange(1,mLayers+1):
  #check 12-oclock
  d = [6*layer +1, 6*layer -1, 6*(2*layer+1)  - 1]
  if p_sum(d) == 3:
    tiles.append(st)


  d_start = [6*layer,6*layer+1,6*layer+2,6*(layer-1)-1]
  for i in xrange(1,6):
    if p_sum(d_start) == 3:
      tiles.append(st + i*layer)
    for j in xrange(4):
      d_start[j] += 1
    
  d_new = [d[1],6*(layer-1)+d[1],d[2]-d[1]-1]
Beispiel #3
0
from itertools import permutations, combinations, product
from proj_euler import mark_primes, MillerRabin
from math import factorial

n = 9
maxDivs = n / 2 + 1
cap = 10 ** 6
mask = mark_primes(cap)


def is_prime(n):
    global mask, cap
    if n <= cap:
        return mask[n]
    else:
        return MillerRabin(n)


def is_good(p, c):
    num = 0
    for i, d in enumerate(p):
        num *= 10
        num += d
        if i in c:
            if not is_prime(num):
                return 0
            num = 0
    if not is_prime(num):
        return 0
    return 1