Answer
t.me/python_tesstОтвет:
{2, 3, 5, 13, 89}
Объяснение:
В Python есть очень полезный тип данных для работы с множествами – это set. Об этом типе данных, примерах использования, и небольшой выдержке из теории множеств пойдёт речь далее. Пересечение множеств – это множество, в котором находятся только те элементы, которые принадлежат исходным множествам одновременно. При использовании оператора & необходимо, чтобы оба операнда были объектами типа set. Метод intersection, в свою очередь, принимает любой iterable-объект. Если необходимо изменить исходное множество, а не возращать новое, то можно использовать метод intersection_update, который работает подобно методу intersection, но изменяет исходный объект-множество.
Код:
def is_prime(number: int) -> bool: """ Возвращает True, если number - это простое число """ assert number > 1 return all(number % i for i in range(2, int(number**0.5) + 1)) def is_fibonacci(number: int) -> bool: """ Возвращает True, если number - это число Фибоначчи """ assert number > 1 a, b = 0, 1 while a + b < number: a, b = b, a + b return a + b == number # Множество простых чисел до 100 primes = set(filter(is_prime, range(2, 101))) # Множество чисел Фибоначчи до 100 fibonacci = set(filter(is_fibonacci, range(2, 101))) # Множество простых чисел до 100, которые одновременно являются # числами Фибоначчи prime_fibonacci = primes.intersection(fibonacci) # Или используя оператор `&`, который определён для множеств prime_fibonacci = fibonacci & primes print(prime_fibonacci)