Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с задачей на Python

Данис Закиров Ученик (47), на голосовании 11 месяцев назад
Необходимо найти длины сторон всех прямоугольников, площадь которых равна заданному натуральному числу S
. Стороны должны быть выражены натуральными числами. При этом решения, которые получаются перестановкой размеров сторон, считаются разными.

Формат входных данных
В программу вводится одно натуральное число S
(1≤S≤10000
).

Формат выходных данных
Программа должна вывести длины сторон искомых прямоугольников, каждую пару на новой строке.
Голосование за лучший ответ
Давид Мейстер Мастер (2089) 1 год назад
 def findRectanglesWithAreaS(area): 
rectangles = []
for a in range(1, area+1):
if area % a == 0: # Проверяем, является ли число area делителем площади
b = area // a # Получаем вторую сторону прямоугольника
rectangles.append((a, b))
return rectangles

def main():
S = int(input("Введите натуральное число S (1≤S≤10000): "))
result = findRectanglesWithAreaS(S)
for rectangle in result:
print(rectangle[0], rectangle[1])

if __name__ == "__main__":
main()
Lancer C. Знаток (461) 1 год назад
 def find_rectangles(s): 
rectangles = []
for a in range(1, int(s**0.5) + 1):
if s % a == 0:
b = s // a
rectangles.append((a, b))
if a != b:
rectangles.append((b, a))
return rectangles

# Вводим число S
s = int(input())

# Находим прямоугольники с заданной площадью
result = find_rectangles(s)

# Выводим результат
for rectangle in result:
print(*rectangle)
Похожие вопросы