Как проверить, является ли число квадратом в Python

Обложка к статье "Как проверить, является ли число квадратом в Python"

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

Проверка с помощью оператора **

Оператор ** в Python позволяет возвести число в степень. Мы можем вычислить корень числа возведя его в степень 0,5. Именно на этом основан данный способ.

Давайте посмотрим на пример кода:

def is_perfect_square(n):
    root = int(n ** 0.5)
    return root * root == n

# Примеры использования
print(is_perfect_square(36))  # True
print(is_perfect_square(37))  # False

В этом примере:

  • n ** 0.5 вычисляет квадратный корень числа n.
  • Приведение к типу int отбрасывает дробную часть, оставляя только целую часть.
  • Затем проверяется, равен ли квадрат этого целого числа самому числу n.

Проверка с помощью получения остатка от деления

Мы можем немного упростить предыдущий способ, если учтём то, что при вычислении корня, который является квадратом, мы должны получить целое число.

Рассмотрим на примере:

def is_perfect_square(n):
    return n**0.5 % 1 == 0 

# Примеры использования
print(is_perfect_square(36))  # True
print(is_perfect_square(37))  # False

Как это работает:

  1. Извлечение квадратного корня: В Python оператор ** используется для возведения числа в степень. Здесь n**0.5 означает извлечение квадратного корня из числа n.
  2. Проверка на целое число: После извлечения квадратного корня, мы проверяем, является ли остаток от деления на 1 равным нулю. Если остаток равен нулю (% 1 == 0), это означает, что результат извлечения квадратного корня — целое число, а значит, исходное число является квадратом.

Проверка с помощью is_integer()

Для реализации метода из предыдущего примера мы можем также использовать функцию is_integer() для проверки, целое ли число получилось.

Рассмотрим на примере:

def is_perfect_square(n):
    root = n**0.5 % 1
    return root.is_integer() 

# Примеры использования
print(is_perfect_square(36))  # True
print(is_perfect_square(37))  # False

Метод is_integer() проверяет, является ли результат целым числом. Если да, то исходное число является квадратом, иначе — нет.

Оцените статью
( Пока оценок нет )
Обучение Python
Добавить комментарий