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)
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]
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