Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Тимофей решил нарисовать прямоугольник по следующим правилам:
Сверху идёт горизонтальный слой квадратов со стороной 1;
Под ним располагается горизонтальный слой квадратов со стороной 2;
...
Последним будет горизонтальный слой квадратов со стороной n.
Определите наименьшие размеры подходящего прямоугольника, полностью заполненного такими квадратами.
Единственная строка входных данных содержит натуральное число n — сторону наибольшего квадрата.
Обратите внимание, что при заданных ограничениях для хранения ответа необходимо использовать 64-битный тип данных, например long long в C++, int64 в Free Pascal, long в Java.
Выведите через пробел два натуральных числа — высоту и ширину такого прямоугольника.
2 ≤ n ≤ 40
Смотри рисунок.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Высота прямоугольника будет равна сумме чисел от 1 до n или n * (n + 1) // 2, а ширина должна делиться на все числа от 2 до n, то есть это НОК всех чисел от 2 до n.
НОК(a, b) = a * b // НОД(a, b), а НОД можно вычислить с помощью алгоритма Евклида.