Example #1
0
def digits9_for_evenor5(digit):
    primes = []
    for i in [1, 3, 7, 9]:
        candidate = 1111111110 * digit + i
        if miller_rabin(candidate):
            primes.append(candidate)

    return primes
Example #2
0
def digits9_for_evenor5(digit):
    primes = []
    for i in [1, 3, 7, 9]:
        candidate = 1111111110 * digit + i
        if miller_rabin(candidate):
            primes.append(candidate)

    return primes
Example #3
0
def digits9(digit):
    primes = []
    base = 1111111111

    # as first digit
    for i in range(1, 10):
        candidate = (base - 10**9) * digit + i * 10**9
        if miller_rabin(candidate):
            primes.append(candidate)

    # not as first digit
    for i in range(10):
        for d in range(9):
            candidate = (base - 10**d) * digit + i * 10**d
            if miller_rabin(candidate):
                primes.append(candidate)

    return primes
Example #4
0
def digits9(digit):
    primes = []
    base = 1111111111

    # as first digit
    for i in range(1, 10):
        candidate = (base - 10 ** 9) * digit + i * 10 ** 9
        if miller_rabin(candidate):
            primes.append(candidate)

    # not as first digit
    for i in range(10):
        for d in range(9):
            candidate = (base - 10 ** d) * digit + i * 10 ** d
            if miller_rabin(candidate):
                primes.append(candidate)

    return primes
Example #5
0
def digits8_for_evenor5(digit):
    primes = []

    # as first digit
    for i in range(1, 10):
        for j in [1, 3, 7, 9]:
            candidate = i * 10 ** 9 + 111111110 * digit + j
            if miller_rabin(candidate):
                primes.append(candidate)

    # not as first digit
    bases = [1011111110, 1101111110, 1110111110, 1111011110,
             1111101110, 1111110110, 1111111010, 1111111100]
    for base in bases:
        for i in range(10):
            for j in [1, 3, 7, 9]:
                candidate = base * digit + (1111111110 - base) * i + j
                if miller_rabin(candidate):
                    primes.append(candidate)

    return primes
Example #6
0
def prime_proof(n):
    n_in_digits = list(str(n))

    # first digit cannot be 0
    digit = n_in_digits[0]
    for d in range(1, 10):
        n_in_digits[0] = str(d)
        if miller_rabin(int(''.join(n_in_digits))):
            return False
    n_in_digits[0] = digit

    # latter digits
    for i in range(1, len(n_in_digits)):
        digit = n_in_digits[i]
        for d in range(10):
            n_in_digits[i] = str(d)
            if miller_rabin(int(''.join(n_in_digits))):
                return False
        n_in_digits[i] = digit

    return True
Example #7
0
def prime_proof(n):
    n_in_digits = list(str(n))

    # first digit cannot be 0
    digit = n_in_digits[0]
    for d in range(1, 10):
        n_in_digits[0] = str(d)
        if miller_rabin(int(''.join(n_in_digits))):
            return False
    n_in_digits[0] = digit

    # latter digits
    for i in range(1, len(n_in_digits)):
        digit = n_in_digits[i]
        for d in range(10):
            n_in_digits[i] = str(d)
            if miller_rabin(int(''.join(n_in_digits))):
                return False
        n_in_digits[i] = digit

    return True
Example #8
0
def digits8_for_evenor5(digit):
    primes = []

    # as first digit
    for i in range(1, 10):
        for j in [1, 3, 7, 9]:
            candidate = i * 10**9 + 111111110 * digit + j
            if miller_rabin(candidate):
                primes.append(candidate)

    # not as first digit
    bases = [
        1011111110, 1101111110, 1110111110, 1111011110, 1111101110, 1111110110,
        1111111010, 1111111100
    ]
    for base in bases:
        for i in range(10):
            for j in [1, 3, 7, 9]:
                candidate = base * digit + (1111111110 - base) * i + j
                if miller_rabin(candidate):
                    primes.append(candidate)

    return primes
Example #9
0
def main():
    primes = []

    # 0, X00000000X
    for i in range(1, 10):
        for j in [1, 3, 7, 9]:
            candidate = i * 10**9 + j
            if miller_rabin(candidate):
                primes.append(candidate)

    # even digits

    # 2, 8 digits
    primes.extend(digits8_for_evenor5(2))
    # 4, 9 digits
    primes.extend(digits9_for_evenor5(4))
    # 6, 9 digits
    primes.extend(digits9_for_evenor5(6))
    # 8, 8 digits
    primes.extend(digits8_for_evenor5(8))

    # odd digits

    # 1, 9 digits
    primes.extend(digits9(1))
    # 3, 9 digits
    primes.extend(digits9(3))
    # 5, 9 digits
    primes.extend(digits9_for_evenor5(5))
    # 7, 9 digits
    primes.extend(digits9(7))
    # 9, 9 digits
    primes.extend(digits9(9))

    # print(primes)
    print(sum(primes))
Example #10
0
def main():
    primes = []

    # 0, X00000000X
    for i in range(1, 10):
        for j in [1, 3, 7, 9]:
            candidate = i * 10 ** 9 + j
            if miller_rabin(candidate):
                primes.append(candidate)

    # even digits

    # 2, 8 digits
    primes.extend(digits8_for_evenor5(2))
    # 4, 9 digits
    primes.extend(digits9_for_evenor5(4))
    # 6, 9 digits
    primes.extend(digits9_for_evenor5(6))
    # 8, 8 digits
    primes.extend(digits8_for_evenor5(8))

    # odd digits

    # 1, 9 digits
    primes.extend(digits9(1))
    # 3, 9 digits
    primes.extend(digits9(3))
    # 5, 9 digits
    primes.extend(digits9_for_evenor5(5))
    # 7, 9 digits
    primes.extend(digits9(7))
    # 9, 9 digits
    primes.extend(digits9(9))

    # print(primes)
    print(sum(primes))