def is_prime_proof(self, n): string_n = str(n) string_test = str(n) if n % 2 == 0 or n % 5 == 0: for i in [1, 3, 7, 9]: string_test = string_test[:-1] + str(i) if primes.is_prime_opti(int(string_test)): return False return True else: for i in range(1, 10): if i == string_n[0]: continue string_test = string_test[:0] + str(i) + string_test[1:] if primes.is_prime_opti(int(string_test)): return False for i in range(1, len(string_n)): string_test = str(n) for j in range(0, 10): if j == string_n[i]: continue string_test = string_test[:i] + str(j) + string_test[i + 1:] if primes.is_prime_opti(int(string_test)): return False return True
def get(self): k = 10**14 for i in range(1, self.limit + 1): while not primes.is_prime_opti( k): # it uses Miller6rabin algorithm to test primality k += 1 self.res = (self.res + self.fibonacci_mod(k)) % self.mod k += 1
def main(): start = time.perf_counter() resultat = 0 for i in range(0, 50000000): if primes.is_prime_opti((2*(i**2))-1): resultat += 1 print(resultat) print('temps d execution', time.perf_counter() - start, 'sec')
def main(): start = time.perf_counter() resultat = 0 for i in range(0, 50000000): if primes.is_prime_opti((2 * (i**2)) - 1): resultat += 1 print(resultat) print('temps d\'exécution', time.perf_counter() - start, 'sec')
def get_list_prime_candidates(self): for d in sympy.divisors(self.factorial): p = d + 1 if primes.is_prime_opti(p): n = self.factorial // d exp = 0 while n % p == 0: n = n // p exp += 1 self.list_prime_candidates.append((p, exp)) self.list_prime_candidates.sort()
def main(): start = time.perf_counter() lim = 150000000 i = 10 somme = 0 while i <= lim: s = i**2 if primes.is_prime_opti(s + 1) and primes.is_prime_opti(s + 3) and primes.is_prime_opti(s + 7) and \ primes.is_prime_opti(s + 9) and primes.is_prime_opti(s + 13) and primes.is_prime_opti(s + 27) and not \ primes.is_prime_opti(s + 11) and not primes.is_prime_opti(s + 17) and not primes.is_prime_opti(s + 21) \ and not primes.is_prime_opti(s + 23): somme += i i += 10 print(somme) print('temps d\'exécution', time.perf_counter() - start, 'sec')
def main(): start = time.perf_counter() lim = 150000000 i = 10 somme = 0 while i <= lim: s = i ** 2 if primes.is_prime_opti(s + 1) and primes.is_prime_opti(s + 3) and primes.is_prime_opti(s + 7) and \ primes.is_prime_opti(s + 9) and primes.is_prime_opti(s + 13) and primes.is_prime_opti(s + 27) and not \ primes.is_prime_opti(s + 11) and not primes.is_prime_opti(s + 17) and not primes.is_prime_opti(s + 21) \ and not primes.is_prime_opti(s + 23): somme += i i += 10 print(somme) print('temps d execution', time.perf_counter() - start, 'sec')
def main(): start = time.perf_counter() n = 1 p = n**2 + (n + 1)**2 compteur = 0 while p < 5 * 10**15: if primes.is_prime_opti(p): compteur += 1 n += 1 p = n**2 + (n + 1)**2 print(compteur) print('temps d\'exécution', time.perf_counter() - start, 'sec')
def main(): start = time.perf_counter() ht = gen_trunc_harshad() somme = 0 for u in ht: if is_strong(u): for k in [1, 3, 7, 9]: temp1 = u*10+k if primes.is_prime_opti(temp1): somme += temp1 print(somme) print('temps d execution', time.perf_counter() - start, 'sec')
def main(): start = time.perf_counter() n = 1 p = n ** 2 + (n + 1) ** 2 compteur = 0 while p < 5 * 10 ** 15: if primes.is_prime_opti(p): compteur += 1 n += 1 p = n ** 2 + (n + 1) ** 2 print(compteur) print("temps d execution", time.perf_counter() - start, "sec")
def main(): start = time.perf_counter() ht = gen_trunc_harshad() somme = 0 for u in ht: if is_strong(u): for k in [1, 3, 7, 9]: temp1 = u*10+k if primes.is_prime_opti(temp1): somme += temp1 print(somme) print('temps d\'exécution', time.perf_counter() - start, 'sec')
def main(): start = time.perf_counter() compteur = 2 r = 0 while compteur < 2000: r += 1 if primes.is_prime_opti(6*r+7) and primes.is_prime_opti(12*r+17) and primes.is_prime_opti(6*r+5): compteur += 1 if primes.is_prime_opti(12*r+5) and primes.is_prime_opti(6*r+5) and primes.is_prime_opti(6*r+11): compteur += 1 if compteur == 2001: print(3*r**2+3*r+2) elif primes.is_prime_opti(6*r+7) and primes.is_prime_opti(12*r+17) and primes.is_prime_opti(6*r+5): print(3*r**2+3*r+2) else: print(3*r**2+9*r+7) print('temps d execution', time.perf_counter() - start, 'sec')
def solve(m): count = 1 for i in range(2, 10**7): l = 1 n = 308 * i b = sympy.divisors(n) for j in b: if primes.is_prime_opti(j + 1): l *= j + 1 if l > 20010: break if l == 20010: count += 1 if count == m: return n
def solve(m): count = 1 for i in range(2, 10**7): l = 1 n = 308*i b = sympy.divisors(n) for j in b: if primes.is_prime_opti(j+1): l *= j+1 if l > 20010: break if l == 20010: count += 1 if count == m: return n
def init_list_candidates(self): candidate = self.d-1 while candidate < self.n: # determines the primes such that d divides them if primes.is_prime_opti(candidate): self.list_primes_candidates.append((candidate, candidate, 1)) candidate += self.d for p in self.list_primes: candidate = p**2 exponent = 2 while candidate < self.n: sigma = (candidate*p - 1)//(p - 1) if sigma % self.d == 0: self.list_primes_candidates.append((p**exponent, p, exponent)) candidate *= p exponent += 1 self.list_primes_candidates = sorted(self.list_primes_candidates)
def main(): start = time.perf_counter() compteur = 2 r = 0 while compteur < 2000: r += 1 if primes.is_prime_opti(6 * r + 7) and primes.is_prime_opti( 12 * r + 17) and primes.is_prime_opti(6 * r + 5): compteur += 1 if primes.is_prime_opti(12 * r + 5) and primes.is_prime_opti( 6 * r + 5) and primes.is_prime_opti(6 * r + 11): compteur += 1 if compteur == 2001: print(3 * r**2 + 3 * r + 2) elif primes.is_prime_opti(6 * r + 7) and primes.is_prime_opti( 12 * r + 17) and primes.is_prime_opti(6 * r + 5): print(3 * r**2 + 3 * r + 2) else: print(3 * r**2 + 9 * r + 7) print('temps d\'exécution', time.perf_counter() - start, 'sec')
def s(self, n, d): lim = n-1 i = lim somme = 0 digits_available = self.digits.replace(str(d), '') while not somme: s_rep = '' for j in range(i): s_rep += str(d) for j in itertools.combinations_with_replacement(digits_available, n-i): js = self.format_perm(j) number = js + s_rep for k in set(itertools.permutations(number)): ks = self.format_perm(k) if ks[0] != '0' and primes.is_prime_opti(int(ks)): somme += int(ks) i -= 1 return somme
def s(self, n, d): lim = n - 1 i = lim somme = 0 digits_available = self.digits.replace(str(d), '') while not somme: s_rep = '' for j in range(i): s_rep += str(d) for j in itertools.combinations_with_replacement( digits_available, n - i): js = self.format_perm(j) number = js + s_rep for k in set(itertools.permutations(number)): ks = self.format_perm(k) if ks[0] != '0' and primes.is_prime_opti(int(ks)): somme += int(ks) i -= 1 return somme
def is_strong(n): return primes.is_prime_opti(n//sum_digits(n))
def get_res(self): for i in range(2 * 10**9, 2 * 10**9 + 2000 + 1): if primes.is_prime_opti(i): print(i) self.mod = i self.res += self.S()
def main(): start = time.perf_counter() p1 = primes.primes(500000) p2 = [] for i in range(len(p1)): if str(p1[i]).count('0') == 3 or str(p1[i]).count('1') == 3 or str(p1[i]).count('2') == 3: p2.append(p1[i]) for j in range(len(p2)): s = str(p2[j]) if s.count('0') == 3: if s.rindex('0') != len(s): a = s.replace('0', '1') b = s.replace('0', '2') c = s.replace('0', '3') d = s.replace('0', '4') e = s.replace('0', '5') f = s.replace('0', '6') g = s.replace('0', '7') h = s.replace('0', '8') i = s.replace('0', '9') compt = 0 for k in [a, b, c, d, e, f, g, h, i]: if primes.is_prime_opti(int(k)): compt += 1 if compt == 7: print(s) break if s.count('1') == 3: if s.rindex('1') != len(s): b = s.replace('1', '2') c = s.replace('1', '3') d = s.replace('1', '4') e = s.replace('1', '5') f = s.replace('1', '6') g = s.replace('1', '7') h = s.replace('1', '8') i = s.replace('1', '9') compt = 0 for k in [b, c, d, e, f, g, h, i]: if primes.is_prime_opti(int(k)): compt += 1 if compt == 7: print(s) break if s.count('2') == 3: if s.rindex('2') != len(s): c = s.replace('2', '3') d = s.replace('2', '4') e = s.replace('2', '5') f = s.replace('2', '6') g = s.replace('2', '7') h = s.replace('2', '8') i = s.replace('2', '9') compt = 0 for k in [c, d, e, f, g, h, i]: if primes.is_prime_opti(int(k)): compt += 1 if compt == 7: print(s) break print('temps d\'exécution', time.perf_counter() - start, 'sec')
def test(one, two): if primes.is_prime_opti(int(str(one)+str(two))) and primes.is_prime(int(str(two)+str(one))): return True return False
def fun_fortunate(n): p = n + 3 while not primes.is_prime_opti(p): p += 2 return p - n
def test(one, two): if primes.is_prime_opti(int(str(one) + str(two))) and primes.is_prime( int(str(two) + str(one))): return True return False
def get_largest(self): for i in self.candidates: if primes.is_prime_opti(int(i)): return i
def is_prime(self, n): if n < 10**9: return n in self.primes_table else: return primes.is_prime_opti(n)
def main(): start = time.perf_counter() p1 = primes.primes(500000) p2 = [] for i in range(len(p1)): if str(p1[i]).count('0') == 3 or str(p1[i]).count('1') == 3 or str(p1[i]).count('2') == 3: p2.append(p1[i]) for j in range(len(p2)): s = str(p2[j]) if s.count('0') == 3: if s.rindex('0') != len(s): a = s.replace('0', '1') b = s.replace('0', '2') c = s.replace('0', '3') d = s.replace('0', '4') e = s.replace('0', '5') f = s.replace('0', '6') g = s.replace('0', '7') h = s.replace('0', '8') i = s.replace('0', '9') compt = 0 for k in [a, b, c, d, e, f, g, h, i]: if primes.is_prime_opti(int(k)): compt += 1 if compt == 7: print(s) break if s.count('1') == 3: if s.rindex('1') != len(s): b = s.replace('1', '2') c = s.replace('1', '3') d = s.replace('1', '4') e = s.replace('1', '5') f = s.replace('1', '6') g = s.replace('1', '7') h = s.replace('1', '8') i = s.replace('1', '9') compt = 0 for k in [b, c, d, e, f, g, h, i]: if primes.is_prime_opti(int(k)): compt += 1 if compt == 7: print(s) break if s.count('2') == 3: if s.rindex('2') != len(s): c = s.replace('2', '3') d = s.replace('2', '4') e = s.replace('2', '5') f = s.replace('2', '6') g = s.replace('2', '7') h = s.replace('2', '8') i = s.replace('2', '9') compt = 0 for k in [c, d, e, f, g, h, i]: if primes.is_prime_opti(int(k)): compt += 1 if compt == 7: print(s) break print('temps d execution', time.perf_counter() - start, 'sec')