Найти в Дзене
Практика Python

Решаем олимпиадную задачу по информатике с помощью модуля math

Условие:

В параде принимают участие M военных. Командование парада решило, что наиболее эффектное построение военных – в форме квадрата, то есть число участников построения должно быть точным квадратом. Но поскольку число M может не быть точным квадратом, разрешается разбить военных на несколько полков, каждый из которых строится в форме квадрата. Для красоты все полки должны быть одинакового размера, также командование парада хочет, чтобы размер каждого полка был как можно больше. Определите максимально возможный размер полка.
Программа получает на вход одно целое положительное число M, Программа должна вывести одно число – максимально возможный размер полка.

Логика решения задачи:

1. Чтобы не осталось бесхозных солдат (а судя по условию их именно для этого и разбивают на несколько квадратов), число M должно нацело делится искомым нами числом.

2. Вспомним свойства квадрата: Площадь - это произведение двух его сторон. Т.е. из искомого нами числа, должен извлекаться корень - целое число.

Ход решения:

Для решения нам потребуется математический модуль math, вернее не весь модуль, а только его функция sqrt() - предназначенная для извлечения целого числа.

I. Импортируем math.

II. Спрашиваем у пользователя число

III. В цикле перебираем все числа от нуля до введенного пользователем и проверяем, подходят ли они тем критериям, которые мы определили для искомого числа. Те числа которые подходят, мы заносим в список. Для проверки нацело извлекся корень или нет - пользуемся числовым методом .is_integer() - который проверяет, целое число ему подсунули в качестве аргумента или нет и возвращает True или False соответственно.

IV. Так как перебирая числа от меньшего к большему, наши кандидаты попадают в список по возрастанию - и искомое число будет последним в списке. Его то и выведем на экран.

Решение:

Решение задачи Квадрат - код
Решение задачи Квадрат - код

В итоге получаем:

Решение задачи Квадрат - вывод
Решение задачи Квадрат - вывод

Читайте похожие статьи:

Решаем логически олимпиадную задачу по информатике

Решаем олимпиадную задачу по информатике в одну строку

Решаем олимпиадную задачу по информатике нестандартным способом

А также другие статьи, с немного другой тематикой, но также интересные и познавательные!

-3
Наука
7 млн интересуются