TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #3203 3.84K
Поздравляем победителей

Задачу об идеальном квадрате верно решили:

— @QuantumaStelata;
— @nxiqns;
— @WhonixMan;
— @GeorKu;
— @patriarch_chesslovo;
— @maslyaev.

Кратчайшие верные решения предложили @QuantumaStelata:


x = lambda s: (s**(1/2)).is_integer()


@nxiqns:


def check_square_perfection(num):
    return (num**0.5).is_integer()


и @WhonixMan:


def check_square_perfection(num):
   return int(num**0.5) == num**0.5


Отдельно выделим решение @maslyaev, учитывающее случай очень больших чисел:


def check_square_perfection(area: int | float) -> bool:
  if area == 0 or area == 1: # На 0 и 1 ломается вавилонский метод
    return True
  if area < 4: # Отрицательная area даст False
    return False
  if area % 1 != 0: # Нецелая area даст False
    return False
  int_area = int(area)
  sqrt = int_area // 2
  while True:
    next_sqrt = (sqrt + int_area//sqrt)//2
    if next_sqrt == sqrt:
      break
    sqrt = next_sqrt
  return sqrt * sqrt == int_area


#задача

@zen_of_python
  • 👍 8
  • ❤ 3
  • 🍌 1
More from @zen_of_python
  1. Oct 3, 2026Как вернуть значение из всплывающего окна в форму Django Admin Django Admin умеет создават…
  2. Oct 2, 2026Охрана трубопровода длиной 400 километров Камеры на столбах не заглянут за угол, дрон виси…
  3. Oct 1, 2026Как не сломать pickle собственным исключением Python Если конструктор исключения принимает…
  4. Oct 1, 2026Как выстроить защиту цепочки поставок Python Эшелонированная схема защиты начинается с соб…
  5. Sep 30, 2026Пакетная обработка в Python: где strict=True не спасает запись С Python 3.12 itertools.bat…
  6. Sep 30, 2026Как воспроизводить гонки потоков Python с помощью blanket Обычно порядок выполнения потоко…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →