สมมติว่าเรามีตัวเลข n ในการแสดงผลจะมี n พิกเซล เราต้องหาขนาดของจอสี่เหลี่ยม กฎเป็นเหมือนด้านล่าง -
-
จำนวนแถว (a) ไม่เกินจำนวนคอลัมน์ (b) [a <=b]
-
ความแตกต่างระหว่าง b - a ให้น้อยที่สุด
ดังนั้น หากอินพุตเป็น 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