Вопрос задан 24.09.2026 в 21:31. Предмет Информатика. Спрашивает Арапова Оля.

ДАЮ 40 БАЛЛОВ!
найдите ошибку и исправьте:
import math
n=int(input('n='))
for i in range (1, n+1):
b=int (input())
if math.sqrt (b)==int(math.sqrt(b)):
print(1, end='')
else:
print(0,end='')

Перейти к ответам

Ответы на вопрос

Отвечает Иванов Кирилл.

Ошибка в программе связана с отступами после условий if и else. В Python код внутри if и else должен иметь одинаковый отступ. Также лучше не сравнивать результат math.sqrt(b) напрямую с int(math.sqrt(b)), так как из-за особенностей вычислений с плавающей точкой могут возникнуть ошибки. Надежнее сохранить корень в переменную.

Исправленный вариант:

Python
import math

n = int(input('n='))

for i in range(1, n + 1): b = int(input()) x = int(math.sqrt(b)) if x * x == b: print(1, end='') else: print(0, end='')

Теперь программа проверяет каждое введенное число: если оно является полным квадратом (например, 4, 9, 16, 25), выводится 1, иначе выводится 0.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос