Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
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')
Ejemplo n.º 4
0
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')
Ejemplo n.º 5
0
 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()
Ejemplo n.º 6
0
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')
Ejemplo n.º 7
0
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')
Ejemplo n.º 8
0
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')
Ejemplo n.º 9
0
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')
Ejemplo n.º 10
0
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")
Ejemplo n.º 11
0
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')
Ejemplo n.º 12
0
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')
Ejemplo n.º 13
0
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
Ejemplo n.º 14
0
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
Ejemplo n.º 15
0
 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)
Ejemplo n.º 16
0
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')
Ejemplo n.º 17
0
 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
Ejemplo n.º 18
0
 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
Ejemplo n.º 19
0
def is_strong(n):
    return primes.is_prime_opti(n//sum_digits(n))
Ejemplo n.º 20
0
 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()
Ejemplo n.º 21
0
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')
Ejemplo n.º 22
0
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
Ejemplo n.º 23
0
def fun_fortunate(n):
    p = n + 3
    while not primes.is_prime_opti(p):
        p += 2
    return p - n
Ejemplo n.º 24
0
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
Ejemplo n.º 25
0
def is_strong(n):
    return primes.is_prime_opti(n//sum_digits(n))
Ejemplo n.º 26
0
def fun_fortunate(n):
    p = n + 3
    while not primes.is_prime_opti(p):
        p += 2
    return p - n
Ejemplo n.º 27
0
 def get_largest(self):
     for i in self.candidates:
         if primes.is_prime_opti(int(i)):
             return i
Ejemplo n.º 28
0
 def is_prime(self, n):
     if n < 10**9:
         return n in self.primes_table
     else:
         return primes.is_prime_opti(n)
Ejemplo n.º 29
0
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')
Ejemplo n.º 30
0
 def get_largest(self):
     for i in self.candidates:
         if primes.is_prime_opti(int(i)):
             return i