숫자 n이 있다고 가정합니다. 디스플레이에는 n개의 픽셀이 있습니다. 직사각형 디스플레이의 크기를 찾아야 합니다. 규칙은 아래와 같습니다 -
-
행 수(a)가 열 수(b)를 초과하지 않음 [a <=b]
-
b의 차이 - 가능한 한 최소입니다.
따라서 입력이 n =12와 같으면 출력은 (3, 4)
가 됩니다.단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
i := square root of n while n mod i is non-zero, do: (decrease i by 1) return (i, n / i)
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <bits/stdc++.h> using namespace std; void solve(int n){ int i = sqrt(n); while (n % i) i--; cout << i << ", " << n / i; } int main(){ int n = 12; solve(n); }
입력
12
출력
3, 4