สมมติว่าเรามีตัวเลข 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