C++ Min Perimeter Rectangle
#include <algorithm>
#include <limits>
long long minPerimeterRectangle(long long n)
{
long long i = 1;
long long min = std::numeric_limits<long long>::max();
while (i * i < n) {
if (n % i == 0) {
min = std::min(min, 2 * (i + n / i));
}
++i;
}
return min;
}
This searches factor pairs up to the square root and picks the pair with the smallest perimeter.