Условия задачи:

 

1. Изучите тему и напишите другой способ нахождения простых чисел.

 

Решение задачи:

 

#1
def main():
    def is_prime(value):
        if value != 1:
            if value != 2 and value != 3 and value != 5 and value != 7:
                if value % 2 != 0 and value % 3 != 0 and value % 5 != 0 and value % 7 != 0:
                    return True
                else:
                    return False
            else:
                return True
        else:
            pass
    num = int(input('Введите целое число: '))
    if is_prime(num):
        print(f'{num} - это простое число')
    else:
        print(f'{num} - это непростое число')
#2 
def is_prime_naive(n):
    if n <= 1:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True

#3
def is_prime_optimized(n):
    if n <= 1:
        return False
    if n <= 3:
        return True
    if n % 2 == 0 or n % 3 == 0:
        return False
    i = 5
    while i * i <= n:
        if n % i == 0 or n % (i + 2) == 0:
            return False
        i += 6
    return True
#4
def sieve_of_eratosthenes(n):
    sieve = [True] * (n + 1)
    sieve[0] = sieve[1] = False
    for i in range(2, int(n**0.5) + 1):
        if sieve[i]:
            sieve[i*i : n+1 : i] = [False] * len(sieve[i*i : n+1 : i])
    return [i for i, prime in enumerate(sieve) if prime]