예제 #1
0
def isCircuPrime(num, digitcount):
    if not isprime(num):
        return False
    for iteration in range(digitcount - 1):
        num *= 10
        num += num // (10**digitcount)
        num %= 10**digitcount
        if not isprime(num):
            return False
    return True
예제 #2
0
def solve():
    for digit_count in range(7, 0, -1):
        for perm_raw in permutations("7654321"[digit_count - 7:]):
            num = int(''.join(perm_raw))
            if isprime(num):
                return num
    print("Error: No pandigital primes found.")
예제 #3
0
def solve():
    primes = primesbelow(33)
    for odd in count(35, 2):
        if isprime(odd):
            primes.append(odd)
            continue
        for prime in primes:
            if sqrt((odd - prime) // 2) % 1 == 0:
                break
        else:
            return odd
예제 #4
0
def primefactors(num):
    result = []
    iterator = 2
    while num > 1:
        if isprime(iterator):
            if num % iterator == 0:
                result.append(iterator)
            while num % iterator == 0:
                num //= iterator
        iterator += 1
    return result
예제 #5
0
def factorization(num):
    result = []
    iterator = 2
    while num > 1:
        if isprime(iterator):
            while num % iterator == 0:
                result.append(iterator)
                num //= iterator
        iterator += 1
    result.sort()
    return result
예제 #6
0
def factorizationpow(num):
    result = dict()
    iterator = 2
    while num > 1:
        if isprime(iterator):
            power = 0
            while num % iterator == 0:
                num //= iterator
                power += 1
                result[iterator] = power
        iterator += 1
    return result
예제 #7
0
def solve(cap=1000):
    b_list = primesbelow(cap)  # b must be prime (consider n = 0)
    longest_streak = 0
    result = 0
    for a in range(-cap, cap + 1):
        for b in b_list:
            n = 1
            while isprime(n**2 + a * n + b):
                n += 1
            if n - 1 > longest_streak:
                longest_streak = n - 1
                result = a * b
    return result