Exemplo n.º 1
0
def Prime_div(num,Prime,divisors):
    """ Recursively Finds the prime divisors of a given number,

    Args:
        num (int): Number whose Prive divisors will be calculated
        Prime (Prime) : An instance of the Prime class used to generate primes
        divisors (list): A list representing the divisors found so far        
    
    """
    if divisors == []: #if this is the first call add one to list all numbers div by 1
        divisors.append(1)
    
    if Prime.isPrime(num):#base case. when prime number is found we have found all Prime divisors
        temp = divisors        
        divisors.append(num)
        
        
        return divisors
    else:# testing case. If we have not found our base prime, then we keep calling the function
        Prime.reset()
        factor = Prime.nextPrime()
        found = False#Set to false in each call 
        while factor < num/2 and not found:
            if num%factor == 0:
                divisors.append(factor)#Appends a found prime divisor to our list
                found = True
            if not found:
                factor = Prime.nextPrime()#Cycles through prime list until we find a prime the number is divisible by
        return Prime_div(num/factor,Prime,divisors)
Exemplo n.º 2
0
from prime import Prime

longest = 0
ans = 0
Prime.isPrime(1000000)
for i in range(0, len(Prime.p)):
    curr = 0
    value = 0
    for j in range(i, len(Prime.p)):
        curr += 1
        value += Prime.p[j]
        if value > 1000000:
            break
        if Prime.isPrime(value) and curr > longest:
            longest = curr
            ans = value
    if longest >= curr:
        break

print(ans)
Exemplo n.º 3
0
from prime import Prime
ans = 0
curr = 0
for b in Prime.prime():
    if b > 1000:
        break
    for a in range(-999, 1000):
        n = 0
        for i in map(lambda x: b + a * x + x**2, range(2000)):
            if not Prime.isPrime(i):
                break
            n += 1
        if n > curr:
            curr = n
            ans = a * b

print(ans)
Exemplo n.º 4
0
m = dict()
ans = 0


def Add(s, t, i, n):
    global m
    global ans
    if len(s) == 0:
        return
    c = t + 'x' + s[1:]
    if i == -1 or int(s[0]) == i:
        if c not in m:
            m[c] = list()
        m[c].append(n)
        if len(m[c]) == 8:
            ans = m[c][0] if ans == 0 else min(ans, m[c][0])
        Add(s[1:], t + 'x', int(s[0]), n)
    Add(s[1:], t + s[0], i, n)


i = 0
j = 1
while ans == 0:
    i = j
    j *= 10
    for k in range(i, j):
        if Prime.isPrime(k):
            Add(str(k), '', -1, k)

print(ans)
Exemplo n.º 5
0
from prime import Prime
left = {2, 3, 5, 7}
right = {2, 3, 5, 7}
ans = 0
count = 0
while len(left) != 0 and len(right) != 0 and count < 11:
    l = set()
    r = set()
    for i in left:
        for j in range(1, 10):
            n = int(str(j) + str(i))
            if Prime.isPrime(n):
                l.add(n)
    for i in right:
        for j in range(1, 10):
            n = i * 10 + j
            if Prime.isPrime(n):
                r.add(n)
    left = l
    right = r
    for i in left.intersection(right):
        ans += i
        count += 1

print(ans)
Exemplo n.º 6
0
from prime import Prime

for c in range(3, 9999999999999999999999999999999999999999999, 2):
  if Prime.isPrime(c):
    continue
  for i in map(lambda x: x ** 2 * 2, range(1, 1000000000000000000000000000000000000000000)):
    if c < i:
      print(c)
      exit(0)
    if Prime.isPrime(c - i):
      break
Exemplo n.º 7
0
from prime import Prime


def toKey(n):
    return int(''.join(sorted(str(n))))


s = list(map(lambda x: list(), range(10000)))
for i in range(1000, 10000):
    if Prime.isPrime(i):
        s[toKey(i)].append(i)

for t in s:
    for i in range(len(t) - 2):
        for j in range(i + 1, len(t) - 1):
            if t[j] * 2 - t[i] in t:
                if t[i] != 1487 and t[j] != 4817:
                    print(t[i], t[j], t[j] * 2 - t[i], sep='')
Exemplo n.º 8
0
from prime import Prime
ans = 0
for i in range(2, 1000000):
  r = str(i)
  while i > 0:
    if not Prime.isPrime(int(r)):
      break
    r = str(i%10) + r[:-1]
    i //= 10
  if i == 0:
    ans += 1

print(ans)