Đ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\) và \(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\) và \(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
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;
}