Điểm ảnh

Xem dạng PDF

Gửi bài giải

Điểm: 12,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Một công ty lớn đã quyết định đưa ra một loại màn hình có đúng ~n~ điểm ảnh được xếp thành các hàng và các cột.

Nhiệm vụ của bạn là xác định số hàng điểm ảnh ~a~ và số cột điểm ảnh ~b~ sao cho:

  • Có đúng ~n~ điểm ảnh trên màn hình, tức là ~a~ x ~b~ = ~n~.
  • Số hàng điểm ảnh không vượt quá số cột điểm ảnh, tức là ~a ≤ b~
  • Sự khác biệt ~b~ – ~a~ càng nhỏ càng tốt.

Dữ liệu vào:

  • Gồm một dòng chứa số nguyên ~n~ (~1 ≤ n ≤ 10^{10}~)

Dữ liệu ra:

  • Ghi hai số nguyên tương ứng là số hàng và số cột điểm ảnh cần tìm của màn hình.

Ví dụ:

Input1

8

Output1

2 4

Input2

25

Output2

5 5

Ràng buộc:

  • 30% test thỏa ~1 ≤ n ≤ 10^3~.
  • 40% test thỏa ~1 ≤ n ≤ 10^7~.
  • 30% test không ràng buộc gì thêm.

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    lekhoinguyn191  đã bình luận lúc 7, Tháng 11, 2025, 14:57

    include <bits/stdc++.h>

    using namespace std;

    int main() { long long x; cin >> x;

    long long a = 1, b = x, c = x;
    
    for (long long i = 1; i * i <= x; i++) {
        if (x % i == 0) {
            long long j = x / i;
            if (i <= j && (j - i) < c) {
                a = i;
                b = j;
                c = j - i;
            }
        }
    }
    
    cout << a << " " << b << endl;
    return 0;
    

    }


  • 0
    dungltt  đã bình luận lúc 10, Tháng 10, 2025, 15:13

    oioioi