Exemple #1
0
def first_P_div_by(n):
  cached_prime(10**6)
  i = 1
  while True:
    i += 1
    if P(i) % n == 0:
      return (i, P(i))
Exemple #2
0
def first_n_partitions(n):
  cached_prime(10**6)
  i = 0
  while True:
    i += 1
    if b_n(i) >= n:
      return i
    if i % 1000 == 0: print i
Exemple #3
0
def find_family():
  for p in primes:
    for m in masks(p):
      family = [m.replace('X', str(i)) for i in range(10)]
      prime_family = filter(lambda x: cached_prime(int(x)), family)
      if len(prime_family) == family_size:
        print prime_family
        print m
        print p
Exemple #4
0
from helpers import factor, cached_prime, d_factor
from fractions import gcd
from pprint import pprint
from math import pi, cos

def totient(n):
  f = list(factor(n))
  prod = 1
  for p in f:
    prod *= (1 - float(1) / p)
  return int(round(prod * n))

def totient1(n):
  return sum([ gcd(k, n) * cos( 2 * pi * float(k) / n ) for k in range(1, n +1)])

s = 0
limit = 10**6+1
cached_prime(limit)
for i in range (2, limit):
  s += totient(i)
  if i % 100 == 0: print i
print s 
Exemple #5
0
    return count


def get_diag_count(n):
    return 2 * (n - 1) + 1


def corners(m=None):
    i = 1
    while m is None or i < m:
        size = 2 * i + 1
        c1 = size ** 2
        c2 = c1 - (size - 1)
        c3 = c1 - 2 * (size - 1)
        c4 = c1 - 3 * (size - 1)
        yield (size, c2, c3, c4)
        i += 1


size = 1000000
cached_prime(size)

total = 1
primes = 0
for c in corners():
    total += 4
    primes += len(filter(is_prime, c[1:]))
    if ((primes * 1000 / total) / 10.0) < 10:
        print c[0]
        break
Exemple #6
0
from helpers import factor, cached_prime, prime_gen
from math import sqrt

def totient(n):
  f = factor(n)
  prod = 1
  for p in f:
    prod *= (1 - float(1) / p)
  return int(round(prod * n))

limit = 1000000
cached_prime(1000000)
prod = 1
for p in prime_gen():
  prod *= p
  if prod <= limit:
    t = totient(prod)
    print (prod, t, float(prod) / t)
  else:
    break
Exemple #7
0
from helpers import cached_prime, all_factors

limit = 10**8
cached_prime(limit + 1)

for i in range(2, limit + 1):
  list(all_factors(i))
Exemple #8
0
from helpers import cached_prime, global_primes

limit = 1000000
cached_prime(limit)
primes = global_primes()

max_length = 0
data = None
for i in range(len(primes)):
  length = 1
  while True:
    if i+length > len(primes): break
    s = sum(primes[i:i+length])
    if s > limit:
      break
    if cached_prime(s):
      if max_length < length:
        print "Found length %s %s (%s%%)" % (length, s, 100 * i / len(primes))
        max_length = length
    length += 1

    
Exemple #9
0
def is_goldbach(n):
  for sq in lower_twice_squares(n):
    if cached_prime(n - sq):
      return True
  return False
Exemple #10
0
from math import sqrt
from helpers import cached_prime

def lower_twice_squares(n):
  i = 1
  while i**2 * 2 < n:
    yield i**2 * 2
    i += 1

def is_goldbach(n):
  for sq in lower_twice_squares(n):
    if cached_prime(n - sq):
      return True
  return False


cached_prime(100000)
i = 3
while True:
  if not cached_prime(i) and not is_goldbach(i):
    print i
    break
  i += 2
Exemple #11
0
from helpers import all_factors, cached_prime, factor
from collections import defaultdict

limit = 10000
visited = defaultdict(bool)
cached_prime(limit * 10)

numbers = []

for i in range(1, limit):
  if not visited[i]:
    s = sum(all_factors(i)) - i
    if i == sum(all_factors(s)) - s:
      if i != s:
        numbers.append(i)
        numbers.append(s)
        print (i, s)
    visited[i] = True
    visited[s] = True

print sum(numbers)