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)
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)
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)
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)
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)
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
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='')
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)