Python

Программу на питоне, помогите пожалуйста

Вводится последовательность из N целых положительных элементов. Определить, содержит ли последовательность хотя бы одно простое число. Простое число не имеет делителей, кроме единицы и самого себя
Смотря, какие числа.

Если маленькие (в пределах 1 млн), то для учёбы сойдёт и приведённый нейросетью тупой алгоритм: брать остаток от деления x на каждое натуральное число от 2 до √x включительно.

Если диапазон чуть побольше, то это уже выглядит расточительным. До триллиона (10 в 12-й степени) можно воспользоваться кольцом 2×3×5×7, исключающим все составные делители до 210 и около 3/4 делителей из оставшегося диапазона:
 from itertools import accumulate, chain, cycle, takewhile
INITIAL = [2, 3, 5, 7, 11]
STEPS = [2, 4, 2, 4, 6, 2, 6, 4, 2, 4, 6, 6, 2, 6, 4, 2, 6, 4, 6, 8, 4, 2, 4, 2, 4, 8,
6, 4, 6, 2, 4, 6, 2, 6, 6, 4, 2, 4, 6, 2, 6, 4, 2, 4, 2, 10, 2, 10]

def genprimes():
return chain(INITIAL[:-1], accumulate(chain(INITIAL[-1:], cycle(STEPS))))

def rangeprimes(sq):
return takewhile(lambda x: x * x 3 and x % 2 == 1 and ISPRIME[toindex(x)])
b = any(c for c in ns if isprime(c))
print(("Не содержит", "Содержит")[b])
Полноценный алгоритм будет выглядеть малость посложнее, и вряд ли его имеет смысл тут приводить.

А если числа совсем большие, тогда лучше смотреть в сторону решета Аткина, тестов на теореме Ферма или других оптимизаций.
Вова Грабок
Вова Грабок
87 571
Лучший ответ
Вот один из возможных вариантов решения:

```python
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True

n = int(input("Введите количество элементов: "))
sequence = []
for i in range(n):
sequence.append(int(input("Введите элемент: ")))

has_prime = False
for num in sequence:
if is_prime(num):
has_prime = True
break

if has_prime:
print("Последовательность содержит хотя бы одно простое число")
else:
print("Последовательность не содержит простых чисел")
```

В этой программе мы сначала определяем функцию `is_prime`, которая проверяет, является ли число простым. Затем мы запрашиваем у пользователя количество элементов в последовательности и сами элементы. Далее мы проходим по всем элементам последовательности и проверяем, является ли хотя бы один из них простым числом, используя функцию `is_prime`. Если такое число найдено, мы выводим сообщение о том, что последовательность содержит хотя бы одно простое число. Если же простых чисел в последовательности нет, мы выводим сообщение о том, что последовательность не содержит простых чисел.

Например, если пользователь вводит количество элементов равное 5 и последовательность [4, 6, 7, 8, 9], то программа выведет сообщение "Последовательность содержит хотя бы одно простое число", так как число 7 является простым.

Надеюсь, это поможет! Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать.
Аркатов Валерий Программа не корректно работает, тебе числа пишет, что и были введены