"Напишите программу, которая считает количество простых чисел в заданной последовательности и выводит ответ на экран." Вот код:

st = 0

k = 0

while True:

a = int(input("Введите число: "))

if len(str(a)) > 0:

for i in range(2, a):

if a % i == 0 or a == i:

st += 1

if st <= 0:

k += 1

else:

continue

print(k)

Выдает ошибку:

builtins.ValueError: invalid literal for int() with base 10: ''

Почему?

Бумеранг1 Бумеранг1    3   22.11.2021 04:51    140

Ответы
Itismylife Itismylife  31.12.2023 18:30
Ошибка "builtins.ValueError: invalid literal for int() with base 10: ''" возникает из-за попытки преобразования пустой строки в целое число в строке `a = int(input("Введите число: "))`.

Чтобы решить эту проблему, можно добавить проверку на пустую строку перед преобразованием в целое число.

Исправленный код выглядит следующим образом:

```
st = 0
k = 0

while True:
a = input("Введите число: ")
if a == '':
break

a = int(a)

if a > 1:
is_prime = True
for i in range(2, a):
if a % i == 0:
is_prime = False
break
if is_prime:
k += 1

print(k)
```

Теперь программа будет работать следующим образом:
1. Инициализируются переменные `st` и `k` для подсчета количества простых чисел.
2. Запускается бесконечный цикл `while True`, который будет прерван только при вводе пустой строки.
3. Вводится число `a` с помощью функции `input`. Если введена пустая строка, цикл прерывается с помощью команды `break`.
4. Строка `a` преобразуется в целое число с помощью функции `int(a)`.
5. Если `a` больше 1, программа проверяет, является ли число простым. Для этого используется цикл `for`, который перебирает все числа от 2 до `a-1`. Если число делится без остатка на какое-либо другое число, оно не является простым, и флаг `is_prime` становится равным `False`.
6. После выполнения цикла, если число `is_prime` равно `True`, значит число `a` является простым, и переменная `k` увеличивается на 1.
7. Цикл повторяется для следующего вводимого числа до тех пор, пока не будет введена пустая строка.
8. По окончании программы, на экран выводится значение переменной `k`, которая содержит количество простых чисел в заданной последовательности.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика