Как я могу определить, соответствует ли каждое значение в списке критериям или нет?

#python #list

Вопрос:

Поэтому я создал код для поиска простых чисел, и моя is_prime(k): функция работает, однако, когда я пытаюсь найти все простые числа в заданном списке, как указано в prime(number): нем, это не работает. Может кто-нибудь привести мне примеры для подражания?

Комментарии:

1. Обратите внимание, что sqrt(n) это ГОРАЗДО меньшая верхняя граница, которую следует использовать для пробного деления при проверке на примитивность по мере n увеличения.

Ответ №1:

Используйте свою is_prime функцию:

 def sans_primes(numbers):
    return [n for n in numbers if is_prime(n)]
 

Или получить только уникальные значения:

 def sans_primes(numbers):
    return set(n for n in set(numbers) if is_prime(n))
 

Комментарии:

1. есть ли какой-либо другой способ, которым я могу это сделать?? Ваш код великолепен, и он определенно работает, но, к сожалению, мой первоначальный код был слишком похож на другие, поэтому мне пришлось его удалить… есть ли для меня другой способ сделать это, если да, пожалуйста, приведите мне пример, чтобы я мог черпать из него идеи. Большое спасибо

2. Что вы подразумеваете под » похожим на других «? Если я хорошо помню, ваш метод был хорош, проверьте потенциальные коэффициенты до sqrt(n), если остаток от деления равен 0, разбейте это не простое число, иначе это простое число