Пример #1
0
def get_odd_composites(n):
    sieve = get_sieve(n)
    composites = []
    for i in xrange(2, len(sieve)):
        if not sieve[i] and i%2 == 1:
            composites.append(i)
    return composites 
Пример #2
0
#!/usr/bin/python

# Euler Project Problem 37

"""Benchmark
Intel Core2 Duo CPU P8400  @ 2.26GHz 
real	0m0.761s
user	0m0.736s
sys	0m0.024s
"""
from eulertools import get_sieve, get_primes

sieve  = get_sieve(10**6)
primes = get_primes(10**6)
del primes[0:4]

res = 0
for p in primes:
    for i in xrange(0, len(str(p))):
        if not sieve[int(str(p)[i:])]:
            truncatable_prime = False
            break
        if not sieve[int(str(p)[:i+1])]:
            truncatable_prime = False
            break
        truncatable_prime = True
    if truncatable_prime:
        res += p

print 'Answer to problem 37:', res
Пример #3
0
#!/usr/bin/python

# Euler Project Problem 35

"""Benchmark
Intel Core2 Duo CPU P8400  @ 2.26GHz 
real	0m1.175s
user	0m1.156s
sys	0m0.016s
"""
import eulertools
from math import ceil, log10

sieve = eulertools.get_sieve(10**6)
rotate = lambda x, n: (x-(x/10**(n-1))*10**(n-1))*10 + x/10**(n-1)

c = 0
for p in xrange(2, 10**6):
    n = i = int(ceil(log10(p)))
    while sieve[p] and i > 0:
        p = rotate(p, n)
        i -= 1

    if i == 0:
        c += 1

print 'Answer to problem 35:', c