проверка последовательности чисел на простое число со счетчиком
Хочу написать функцию по проверке последовательности чисел на простоту, вот мой код,что я делаю нет так, поправьте пожалуйста.
def isPrime():
sequence = int(input('Введите количество чисел в последовательности:'))
count = 0
for number in range(sequence // 2 + 1):
if sequence % number == 0:
return False
return True
count += 1
print(count)
Ответы (2 шт):
Автор решения: Andrey
→ Ссылка
range по умолчанию начинается с 0 -> документация, а значения 0 и 1 для проверки некорректны.
Необходимо отдельно от isPrime получить последовательность, а потом в цикле подать её. Чтобы отделить ввод данных от их обработки.
Получать последовательность можно за один input, а потом разбить её с помощью split, приведение к числу int("10")
def isPrime(number):
rangeSize = number // 2 + 1
for checkingNumber in range(2, rangeSize):
if number % checkingNumber == 0:
return False
return True
arr = [3, 5, 7, 20, 14, 17]
count = 0
for item in arr:
if isPrime(item):
count = count + 1
print(count)
Автор решения: CameL
→ Ссылка
Вам нужно или в функцию еще один цикл добавить, или же саму функцию зациклить. Вот наиболее приближенный пример к вашему коду:
def is_prime(x):
"""Функция проверки числа на простое"""
if x < 2:
return False
for i in range(2, (x // 2) + 1):
if x % i == 0:
return False
return True
sequence = int(input('Введите количество чисел в последовательности:'))
count = 0
for number in range(sequence):
if is_prime(number):
count += 1
print(count)