Tổng nhỏ nhất

Xem PDF



Dạng bài
Điểm: 10 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Nhập vào \(1\) số nguyên dương \(n\). Hãy tìm cách chia số \(n\) thành tích \(2\) số nguyên dương \(a\)\(b\) sao cho tổng của chúng là nhỏ nhất.

Input

  • Một số nguyên \(n\) (\(1 \le n \le 10^{9}\)).

Output

  • In ra hai số nguyên dương \(a\)\(b\) (\(a \le b\)) thoả mãn đề bài.

Example

Test 1
Input
6
Output
2 3
Test 2
Input
8
Output
2 4

Bình luận


  • 0
    Nguyenminhdat    3:10 p.m. 28 Tháng 9, 2024

    include <bits/stdc++.h>

    using namespace std;
    int main() {
    long long n;
    cin >>n;
    long long a=1,b=n;
    long long min_tong =n+1;
    for (long long i =1; i* i<=n;++i) {
    if (n%i==0) {
    long long j= n/i;
    if (i+j<min_tong) {
    min_tong =i+j;
    a =i;
    b =j;
    }
    }
    }
    cout <<a<< " " <<b;
    return 0;
    }