Example #1
0
import euler
import math

sieve = euler.sieve_of_eratosthenes(100000)
sieve_dic = euler.list_to_dic(sieve)

def check_goldbach(n):
	prime_ptr = 0
	while(True):
		prime = sieve[prime_ptr]
		if prime > n:
			break
		if euler.is_square((n - prime)/2):
			return True
		prime_ptr += 1
	return False

def main():
	n = 9
	while(True):
		if n not in sieve_dic:
			if not check_goldbach(n):
				break
		n += 2
	return n


print main()
Example #2
0
#Not an entirely correct solution, since I misunderstood one part.

import euler
import itertools

prime_max = 100000000
prime_family = 8

#assume the target is within prime_max
sieve_list = euler.sieve_of_eratosthenes(prime_max)
sieve_dic = euler.list_to_dic(sieve_list)

def get_combinations_iterator(n, r):
	return itertools.combinations(range(len(str(n))-1), r)

def get_digits_iterator(n, positions):
	n = list(reversed([i for i in str(n)]))
	for i in range(0, 10):
		for position in positions:
			n[position] = str(i)
		yield int("".join(list(reversed(n))))

def check_one_number(n):
	length = len(str(n))
	for i in range(1, length):
		combinations_iterator = get_combinations_iterator(n, i)
		while True:
			try:
				positions = [i+1 for i in list(combinations_iterator.next())]
				print positions
				digits_iterator = get_digits_iterator(n, positions)
Example #3
0
import euler

sieve = euler.sieve_of_eratosthenes(999999999)

def check_pandigital(n):
	n = str(n)
	original_length = len(n)
	for i in range(len(n)+1,10):
		n = n.replace(str(i),"")
	n = n.replace("0","")
	if len(set(n))==original_length:
		return True
	else:
		return False

i = -1
while True:
	prime = sieve[i]
	if check_pandigital(prime):
		print prime
		break
	i -= 1

# check_pandigital(2143)
Example #4
0
import euler
from numba import jit

dic = euler.list_to_dic(euler.sieve_of_eratosthenes(10000000))

def main():
	max_val = -1
	global_a, global_b = 0, 0
	for a in range(-999,1000):
		for b in range(-999,1000):
			n = 0
			count = 0
			while(True):
				if (n**2 + a*n + b) in dic:
					count += 1
				else:
					break
				n += 1
			if count>=max_val:
				max_val = count
				global_a, global_b = a, b 
	return global_a, global_b, max_val

global_a, global_b, max_val = main()
print (global_a,global_b,max_val)