def solve_2(lim=1000000): primes = sieve(lim) return sum((test(n, primes) for n in range(lim))) def solve_3(lim=1000000): primes = PrimeSet() prime = primes.prime tot = len([i for i in forbiddenDigits if prime(int(i))]) for i in range(3, lim, 2): if test_circular(i, prime): tot += 1 return tot if __name__ == "__main__": measure_func(solve) measure_func(solve_2) measure_func(solve_3) measure_func(solve, 10000000) measure_func(solve_2, 10000000) measure_func(solve_3, 10000000) measure_func(solve, 100000000) measure_func(solve_3, 100000000) measure_func(solve_2, 100000000)
#!/usr/bin/env python3 # Each new term in the Fibonacci sequence is generated by adding the # previous two terms. By starting with 1 and 2, the first 10 terms will be: # 1, 2, 3, 5, 10, 13, 21, 34, 55, 89, ... # By considering the terms in the Fibonacci sequence whose values do not # exceed four million, find the sum of the even-valued terms. from tools.utils import measure_func def solve(): sum = 0 u = 1 u1 = 2 while u1 <= 4000000: if not u1 % 2: sum += u1 (u, u1) = (u1, u1 + u) return sum if __name__ == "__main__": measure_func(solve)
def apply(d, n): return d.swap().plus(n) def solve(n=100): d = Div(1, 0) for k in gen_e_divisors(n): apply(d, k) return sum(gen_numbers(d.num)) def solve_2(n=100): return sum(gen_numbers(reduce(apply, gen_e_divisors(n), Div(1, 0)).num)) def solve_3(n=100): return sum(gen_numbers(reduce(lambda x,y: (x[1]+y*x[0],x[0]), gen_e_divisors(n), (1,0))[0])) if __name__ == "__main__": measure_func(solve) measure_func(solve_2) measure_func(solve_3) # measure_func(solve, args=100000) # measure_func(solve_2, args=100000) # measure_func(solve_3, args=100000)
from tools.utils import measure_func def solve(l=1000): f = lambda n: (l // n)*(n + (l // n)*n)/2 return f(3) + f(5) - f(15) def solve_2(l=1000): s = 0 for n in range(l): if not(n % 3 and n % 5): s += n return s def solve_3(l=1000): return sum(filter(lambda n: not(n%3 and n%5), range(l))) if __name__ == "__main__": measure_func(solve) measure_func(solve_2) measure_func(solve_3) measure_func(solve, args=10000000) measure_func(solve_2, args=10000000) measure_func(solve_3, args=10000000)
from tools.prime import prime from tools.utils import measure_func def solve(lim=1000000): old_p = 0 p = 1 k = 1 while True: if p > lim: break if prime(k): old_p = p p *= k k += 1 return old_p if __name__ == "__main__": measure_func(solve, 10) measure_func(solve, 100) measure_func(solve, 1000) measure_func(solve, 10000) measure_func(solve, 100000) measure_func(solve, 1000000) # profile.run("solve(100000)")