Bài toán: Tìm a × b = n (số hàng × số cột) với a ≤ b và b - a nhỏ nhất.
Giải pháp: Duyệt từ √n xuống 1, tìm ước số đầu tiên i chia hết n. Khi đó a = i, b = n/i.
Code C++
#include <bits/stdc++.h>
using namespace std;
void solve(int n) {
int a = sqrt(n);
while (n % a != 0) a--;
cout << a << ", " << n / a;
}
int main() {
solve(12); // 3, 4
return 0;
}
Kết quả
3, 4