def is_truncatable_prime(num):
    num_str = str(num)

    trunc_left = num_str[1:]
    trunc_right = num_str[:-1]

    # truncate number from ltr and rtl
    # if any truncation is not prime, return false
    while len(trunc_left) > 0:
        if not is_prime(int(trunc_left)):
            return False
        trunc_left = trunc_left[1:]

    while len(trunc_right) > 0:
        if not is_prime(int(trunc_right)):
            return False
        trunc_right = trunc_right[:-1]

    return True
Example #2
0
def find_number_of_primes(a, b):
    number_of_primes = 0
    inp = 0

    while True:
        if not is_prime(inp * inp + a * inp + b):
            break
        inp += 1
        number_of_primes += 1

    return number_of_primes
def method():
    print("find the largest prime factor of 600,851,475,143")

    inp = 600851475143

    for i in range(int(sqrt(inp)), 0, -1):
        if inp % i == 0 and is_prime(i):
            print(i)
            break

    return
def method():
    print("find the 10,001st prime number")

    prime_counter = 0
    i = 1
    while prime_counter != 10001:
        i += 1
        if is_prime(i):
            prime_counter += 1

    print(i)
    return
Example #5
0
def is_circular_prime(num_str, orig_num_str, iteration=0):
    while True:
        # if the num has been rotated back to the orig number without issue, return true
        if iteration > 0 and num_str == orig_num_str:
            return True

        # get number from string and rotate number
        num = int(num_str)
        rotate = num_str[1:] + num_str[0]

        # if iteration > 0, number has been rotated
        # check if it is prime
        # if true, go to next rotation
        # or if this is the first iteration, we know that this number is already prime, so check next rotation
        if iteration == 0 or iteration > 0 and is_prime(num):
            num_str = rotate
            iteration += 1
            continue

        # here, iteration > 0 and num is not prime, so return false
        return False