def main():
    nums = []
    p_gen = prime_generator()
    primes = [next(p_gen)]
    for i in count(1):
        factors = 0
        while i/30 >= primes[-1]:
            primes.append(next(p_gen))
        for n in primes:
            temp = i
            once = True
            while temp % n == 0:
                if once:
                    factors += 1
                    once = False
                temp /= n
            if i/30 < n or 4 < factors:
                break
        logging.debug('{} has {} factors'.format(i, factors))
        if factors == 4:
            nums.append(i)
        else:
            nums = []
        if len(nums) == 4:
            break
    print('Answer: {}'.format(nums))
def main():
    prime_list = []
    trunc_prime_sum = 0
    trunc_prime_count = 0
    for prime in prime_generator():
        prime_list.append(prime)
        if prime < 10:
            continue
        logging.debug("Checking prime {}".format(prime))
        trunc_prime = True
        for i in range(1,len(str(prime))):
            left  = int(str(prime)[:i])
            right = int(str(prime)[i:])
            logging.debug("Testing {} and {}".format(left, right))
            if left not in prime_list or right not in prime_list:
                logging.debug("Nope!")
                trunc_prime = False
                break
        if trunc_prime:
            trunc_prime_count += 1
            logging.info(prime)
            trunc_prime_sum += prime
        if trunc_prime_count >= 11:
            break
    print('Answer: {}'.format(trunc_prime_sum))
def main():
	limit = 2e6
	prime_sum = 0
	for prime in prime_generator():
		if prime > limit: break
		prime_sum += prime
	print prime_sum
def main():
    prime_list = []
    trunc_prime_sum = 0
    trunc_prime_count = 0
    for prime in prime_generator():
        prime_list.append(prime)
        if prime < 10:
            continue
        logging.debug("Checking prime {}".format(prime))
        trunc_prime = True
        for i in range(1, len(str(prime))):
            left = int(str(prime)[:i])
            right = int(str(prime)[i:])
            logging.debug("Testing {} and {}".format(left, right))
            if left not in prime_list or right not in prime_list:
                logging.debug("Nope!")
                trunc_prime = False
                break
        if trunc_prime:
            trunc_prime_count += 1
            logging.info(prime)
            trunc_prime_sum += prime
        if trunc_prime_count >= 11:
            break
    print('Answer: {}'.format(trunc_prime_sum))
def main():
    nums = []
    p_gen = prime_generator()
    primes = [next(p_gen)]
    for i in count(1):
        factors = 0
        while i / 30 >= primes[-1]:
            primes.append(next(p_gen))
        for n in primes:
            temp = i
            once = True
            while temp % n == 0:
                if once:
                    factors += 1
                    once = False
                temp /= n
            if i / 30 < n or 4 < factors:
                break
        logging.debug('{} has {} factors'.format(i, factors))
        if factors == 4:
            nums.append(i)
        else:
            nums = []
        if len(nums) == 4:
            break
    print('Answer: {}'.format(nums))
def prime_pairs(lim, block = 1000100):
	pg = prime_generator(block)
	large = pg.next()
	for p in pg:
		(large, small) = (p, large)
		if small >= lim: return
		if large - small == 2:
			yield (large, small)
Exemple #7
0
def prime_pairs(lim, block=1000100):
    pg = prime_generator(block)
    large = pg.next()
    for p in pg:
        (large, small) = (p, large)
        if small >= lim: return
        if large - small == 2:
            yield (large, small)
def main():
    max_pan_len = (0,0)
    for prime in prime_generator():
        if prime > 987654321: break
        pan_len = pandigital_len(str(prime))
        if pan_len > max_pan_len[0]:
            max_pan_len = (pan_len, prime)
            logging.info(max_pan_len)
    print('Answer: {}'.format(max_pan_len))
def main():
    max_pan_len = (0, 0)
    for prime in prime_generator():
        if prime > 987654321: break
        pan_len = pandigital_len(str(prime))
        if pan_len > max_pan_len[0]:
            max_pan_len = (pan_len, prime)
            logging.info(max_pan_len)
    print('Answer: {}'.format(max_pan_len))
def brute():
	lim = 100000
	for p in prime_generator():
		if p >= lim: break
		for n in range(1,lim):
			m = n**2 * (n + p)
			if is_cube(m):
				if is_cube(n):
					nu = round(n ** (1.0/3))
				print "%d^9 + %d^2 * %d = %d^3" %(nu,n,p,round(m**(1.0/3)))
def main():
	big_num = 100000
	prime_sum = 2 + 3 + 5
	for p in prime_generator(block=100100):
		if p <= 5: continue
		if p >= big_num: break
		stdout.write("%d\r" %(p))
		stdout.flush()
		if not match(p):
			prime_sum += p
	print "Sum of all primes with property is %d" %(prime_sum)
Exemple #12
0
def main():
    big_num = 100000
    prime_sum = 2 + 3 + 5
    for p in prime_generator(block=100100):
        if p <= 5: continue
        if p >= big_num: break
        stdout.write("%d\r" % (p))
        stdout.flush()
        if not match(p):
            prime_sum += p
    print "Sum of all primes with property is %d" % (prime_sum)
Exemple #13
0
def main():
    n_prime = prime_generator()
    primes = [next(n_prime)]
    max_conseq = 0
    for a in range(-999,1000):
        for b in range(-999,1000):
            consec = consec_quad_primes(a,b,primes,n_prime)
            if max_conseq < consec:
                max_conseq = consec
                coeff = (a,b)
    print("{}: from {}".format(max_conseq, str(coeff)))
def factor(n):
	f = []
	p_gen = prime_generator()
	while not is_prime(n) and n > 1:
		p = p_gen.next()
		while n % p == 0:
			n /= p
			f.append(p)
			print n
	if n != 1: f.append(int(n))
	return f
def main():
    big_num = 10**10
    for n,p in enumerate(prime_generator(block=10000000), start=1):
        if p**2 < big_num: continue
        r = prime_remainder(p,n)
        stdout.write("%d: %d: %d\r" %(n,p,r))
        stdout.flush()
        if r > big_num:
            stdout.write(" " * 40 + "\r")
            print "%d: %d: %d" %(n, p, r)
            return        
Exemple #16
0
def factor(n):
    f = []
    p_gen = prime_generator()
    while not is_prime(n) and n > 1:
        p = p_gen.next()
        while n % p == 0:
            n /= p
            f.append(p)
            print n
    if n != 1: f.append(int(n))
    return f
Exemple #17
0
def brute():
    lim = 100000
    for p in prime_generator():
        if p >= lim: break
        for n in range(1, lim):
            m = n**2 * (n + p)
            if is_cube(m):
                if is_cube(n):
                    nu = round(n**(1.0 / 3))
                print "%d^9 + %d^2 * %d = %d^3" % (nu, n, p, round(
                    m**(1.0 / 3)))
Exemple #18
0
def main():
    lim = 1000000
    ans = 0
    for p in prime_generator(block=lim + 1000):
        if p >= lim: break
        (m, args) = match(p)
        if m:
            (a, c) = args
            stdout.write("%d^3 + %d^2 * %d = %d^3\r" % (a, a, p, c))
            stdout.flush()
            ans += 1
    print "There are %d primes with propery below %d" % (ans, lim),
    print " " * 10
Exemple #19
0
def main():
    n = 1
    p_gen = prime_generator()
    prime_list = [next(p_gen)]
    while True:
        n += 2
        while n > prime_list[-1]:
            prime_list.append(next(p_gen))
        if n in prime_list:
            continue
        if not fits_conjecture(n, prime_list):
            print('Answer: {}'.format(n))
            break
def main():
	lim = 1000000
	ans = 0
	for p in prime_generator(block = lim + 1000):
		if p >= lim: break
		(m, args) = match(p)
		if m:
			(a,c) = args
			stdout.write("%d^3 + %d^2 * %d = %d^3\r" %(a,a,p,c))
			stdout.flush()
			ans += 1
	print "There are %d primes with propery below %d" %(ans, lim),
	print " " * 10
def main():
    n = 1
    p_gen = prime_generator()
    prime_list = [next(p_gen)]
    while True:
        n += 2
        while n > prime_list[-1]:
            prime_list.append(next(p_gen))
        if n in prime_list:
            continue
        if not fits_conjecture(n, prime_list):
            print('Answer: {}'.format(n))
            break
Exemple #22
0
def main():
    big_num = 10**9
    lim = 40
    c = 0
    prime_sum = 0
    for p in prime_generator(block=10000000):
        if p == 5 or p == 2: continue
        a = A(p)
        stdout.write("%d: %d\r" % (c, p))
        stdout.flush()
        if big_num % a == 0:
            #print p
            prime_sum += p
            c += 1
            print "%d: %d" % (c, p)
        if c >= lim: break
    print "Sum of the first %d primes is %d" % (lim, prime_sum)
def main():
	big_num = 10**9
	lim = 40
	c = 0
	prime_sum = 0
	for p in prime_generator(block=10000000):
		if p == 5 or p == 2: continue
		a = A(p)
		stdout.write("%d: %d\r" %(c,p))
		stdout.flush()
		if big_num % a == 0:
			#print p
			prime_sum += p
			c += 1
			print "%d: %d" %(c, p)
		if c >= lim: break
	print "Sum of the first %d primes is %d" %(lim, prime_sum)
Exemple #24
0
def main():
    #big_num = 10000
    big_num = 1000000
    s_sum = 0
    pg = prime_generator(big_num + 1000)
    large = pg.next()
    large = pg.next()
    large = pg.next()
    #print large
    for p in pg:
        (large, small) = (p, large)
        if small > big_num: break
        stdout.write("%d: %d\r" % (large, small))
        stdout.flush()
        s_sum += get_s(large, small)
        #if get_s(large,small) != slow_get_s(large, small):
        #	print "Problem: (%d, %d)" %(large,small)
    print "Sum of all s is %d" % (s_sum)
def main():
	#big_num = 10000
	big_num = 1000000
	s_sum = 0
	pg = prime_generator(big_num + 1000)
	large = pg.next()
	large = pg.next()
	large = pg.next()
	#print large
	for p in pg:
		(large, small) = (p, large)
		if small > big_num: break
		stdout.write("%d: %d\r" %(large, small))
		stdout.flush()
		s_sum += get_s(large, small) 
		#if get_s(large,small) != slow_get_s(large, small):
		#	print "Problem: (%d, %d)" %(large,small)
	print "Sum of all s is %d" %(s_sum)
def main():
    set_dict = {}
    limit = False
    max_elements = [1e6] * 5
    i = 0
    for prime in prime_generator(block=1000000):
        i += 1
        if i % 100000 == 0: logging.info("Testing {}".format(prime))
        if limit and limit < prime: break
        [p, q] = populate(set_dict, prime)
        logging.debug(set_dict)
        logging.debug("p: {}\nq: {}".format(str(p), str(q)))
        element_set = has_valid_set(set_dict, [p, q])
        if element_set and sum(element_set) < sum(max_elements):
            element_set.sort()
            print("{:d}: {!s}".format(sum(element_set), element_set))
            k = str(element_set[-1])
            limit = int(k + k)
            max_elements = element_set
def wheel_sieve(diffs, lim, stop):
	wheel = {}
	for p in prime_generator(block=(stop+100)):
		stdout.write("%9d\r" %(p))
		stdout.flush()
		if p > stop: break
		if p == 2 or p == 5: continue
		spoke = wheel_worker(p, diffs)
#		print "%2d: %s" %(p, spoke)
		wheel[p] = spoke
	primes = sorted(wheel.keys())
	for i in range(lim//10):
		for p in primes:
			flag = True
			if not wheel[p][i % p]:
				if i == 1: print "%d: %d: %s" %(p,i%p,wheel[p])
				flag = False
				break
		if flag: yield i*10
Exemple #28
0
def wheel_sieve(diffs, lim, stop):
    wheel = {}
    for p in prime_generator(block=(stop + 100)):
        stdout.write("%9d\r" % (p))
        stdout.flush()
        if p > stop: break
        if p == 2 or p == 5: continue
        spoke = wheel_worker(p, diffs)
        #		print "%2d: %s" %(p, spoke)
        wheel[p] = spoke
    primes = sorted(wheel.keys())
    for i in range(lim // 10):
        for p in primes:
            flag = True
            if not wheel[p][i % p]:
                if i == 1: print "%d: %d: %s" % (p, i % p, wheel[p])
                flag = False
                break
        if flag: yield i * 10
def main():
    prime_gen = prime_generator()
    prime_list = [next(prime_gen)]
    circular_count = 0
    logging.info("Starting")
    for i in count():
        while i >= len(prime_list):
            logging.debug("Extending primes array")
            new_prime = next(prime_gen)
            prime_list.append(new_prime)
        circular = True
        if prime_list[i] >= 1000000: break
        logging.debug("Testing " + str(prime_list[i]))
        for circ in circ_gen(prime_list[i]):
            while circ > prime_list[-1]:
                prime_list.append(next(prime_gen))
            if circ not in prime_list:
                circular = False
                break
        if circular:
            logging.info("This prime is circular " + str(prime_list[i]))
            circular_count += 1
    print('There are {} circular primes'.format(circular_count))
def nth_prime(n):
    i = 1
    for prime in prime_generator():
        i += 1
        if i > n: return prime
def nth_prime(n):
	i = 1
	for prime in prime_generator():
		i += 1
		if i > n: return prime