Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 18, 2022 15:51:17

vladimir_vl_vlad
Зарегистрирован: 2021-07-16
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция, проверяющая является ли число квадратом целого числа

Написал функцию, но проблема в том, что при извлечении квадратного корня из числа, результат принимает вид “2.0” и проверка функцией isinstance показывает, что это число не целое. Не пойму как решить проблему с этой точкой?

 def square_number(n):
    num = n
    sqrt = math.sqrt(num)
    print(type(sqrt))
    if isinstance(sqrt, int):
        return True
    else:
        return False
for number in range(1, 100):
    if square_number(number):
        print(f'Число {number} является квадратом целого числа')
    else:
        print(f'Число {number} не является квадратом целого числа')

Офлайн

#2 Июнь 18, 2022 16:22:21

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1308
Репутация: +  112  -
Профиль   Отправить e-mail  

Функция, проверяющая является ли число квадратом целого числа

     if sqrt.is_integer():
        return True
    else:
        return False

Офлайн

#3 Июнь 19, 2022 07:53:33

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Функция, проверяющая является ли число квадратом целого числа

Никак вы ее не решите. Результат извлечения корня это действительное число. В целое оно превратится только округлением. Но округлить можно любое действительное число.
Вам надо полностью менять алгоритм. воспользуйтесь тем что произведение целых целое число.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version