М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Irina5786
Irina5786
03.09.2021 22:11 •  Информатика

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

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: ''

Почему?

👇
Ответ:
Catlove333
Catlove333
03.09.2021
Ошибка "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`, которая содержит количество простых чисел в заданной последовательности.
4,5(51 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ