def diagonal_prime_pct_below(pct): diagonals = diagonal_gen() prime_count = 0 diagonal_count = 0 size = 1 diagonal = diagonals.next() diagonal_count += 1 if is_prime(diagonal): prime_count += 1 while True: size += 2 for i in xrange(4): diagonal = diagonals.next() diagonal_count += 1 if is_prime(diagonal): prime_count += 1 if ( prime_count / diagonal_count ) < pct: break return size
def yield_template_primes(template): for num in [ str(i) for i in range(10) ]: potential = int(template.replace('*', num)) if is_prime(potential): yield potential
def is_concatenable_combo(x, y): return is_prime(int(y + x * 10**(floor(log10(y)+1))))