Python: как написать функцию, оставляющую только простые числа из списка
Ответы
Rachel Lynn
Для решения этой задачи можно использовать несколько подходов. Самый распространенный – проверка каждого числа на простоту и добавление его в результирующий список, если оно удовлетворяет условию.
def is_prime(n): '''Проверяет, является ли число простым.''' if n <= 1: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True def filter_primes(numbers): '''Оставляет только простые числа из списка.''' prime_numbers = [] for number in numbers: if is_prime(number): prime_numbers.append(number) return prime_numbers # Пример использования: my_list = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] primes = filter_primes(my_list) print(primes) # Вывод: [2, 3, 5, 7, 11, 13]
Функция `is_prime(n)` определяет, является ли число `n` простым. Она проверяет делимость числа на все целые числа от 2 до квадратного корня из `n`. Если число не имеет делителей в этом диапазоне, оно считается простым.
Функция `filter_primes(numbers)` принимает список чисел и возвращает новый список, содержащий только простые числа из исходного списка. Она перебирает все числа в списке и вызывает функцию `is_prime()` для каждого из них. Если число является простым, оно добавляется в результирующий список.
Оптимизация: Проверка на простоту до квадратного корня значительно повышает эффективность алгоритма. Также можно оптимизировать проверку только на нечетные числа после проверки на 2 (если исходное число больше 2).
Для решения этой задачи можно использовать несколько подходов. Самый распространенный – проверка каждого числа на простоту и добавление его в результирующий список, если оно удовлетворяет условию.
Функция `is_prime(n)` определяет, является ли число `n` простым. Она проверяет делимость числа на все целые числа от 2 до квадратного корня из `n`. Если число не имеет делителей в этом диапазоне, оно считается простым.
Функция `filter_primes(numbers)` принимает список чисел и возвращает новый список, содержащий только простые числа из исходного списка. Она перебирает все числа в списке и вызывает функцию `is_prime()` для каждого из них. Если число является простым, оно добавляется в результирующий список.
Оптимизация: Проверка на простоту до квадратного корня значительно повышает эффективность алгоритма. Также можно оптимизировать проверку только на нечетные числа после проверки на 2 (если исходное число больше 2).