#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, разбейте это не простое число, иначе это простое число