Files
eidp-klausuraufgaben/loops/primes/solution/primes.py
2024-01-30 01:24:35 +01:00

36 lines
745 B
Python

def is_prime(n: int) -> bool:
if n < 2:
return False
for i in range(2, n // 2 + 1):
if n % i == 0:
return False
return True
def next_prime(n: int) -> int:
return n + 1 if is_prime(n + 1) else next_prime(n + 1)
def next_prime_iterative(n: int) -> int:
num = n + 1
while not is_prime(num):
num += 1
return num
def prime_factorize(n: int) -> list[int]:
prime_factors: list[int] = []
num = n
prime = 2
while num > 1:
if num % prime == 0:
prime_factors.append(prime)
num //= prime
prime = 2
else:
prime = next_prime(prime)
return prime_factors
if __name__ == "__main__":
prime_factorize(10)