Предмет: Информатика, автор: Sh0tnikO

ДАЮ 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='')

Ответы

Автор ответа: Greenow
1

import math

for i in range(1, int(input('n='))+1):

   b=int(input("b="))

   if math.sqrt(b)==int(math.sqrt(b)):

       print(1)

       continue

   print(0)

# поскольку что конкретно должен делать код не написано, то убрал лишние else, поправил отступы. так-же можно избавится от ненужной переменной n, поскольку она особо не играет какой-то важной роли. также убрал end='', что был не нужен. строка на строку налазила, а зачем такое?


Greenow: и в чем же проблема?
Greenow: что выдает?
Sh0tnikO: код работает, но мне должно выдавать кол-во делителей,например:
5
5 8 16 11 9
и в результате будет
0 0 1 0 1
Greenow: создай вопрос на минимальное количество баллов, и докладно опиши что надо. я отвечу
Greenow: по твоему примеру в коментариях мне, например, непонятно что делать
Greenow: x = int(input())
dividers = []
for num in range(1, x+1):
----if x % num == 0: dividers.append(num)
print(f"Dividers are: {dividers}")

# если тебе нужны делители числа
Greenow: только "----" заменишь на " "
Greenow: на 4 пробела
Greenow: а если поличество, то замени последнюю строчку на
print(f"Dividers are: {len(dividers)}")
Greenow: количество*
Похожие вопросы
Предмет: Окружающий мир, автор: Ученится3класса
Предмет: Алгебра, автор: bezruchkin04