fo31 Phân tích số
Xem dạng PDF
Gửi bài giải
Điểm:
100,00 (OI)
Giới hạn thời gian:
0.55s
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
Phân tích số
Tên file: phantich.
Nhập một số nguyên dương n (~n ≤ 10^9~). Hãy phân n thành tích của hai số nguyên dương x và y (trong đó x ≤ y) sao cho tổng của chúng là nhỏ nhất.
Input:
số nguyên dương n.
Output:
2 số nguyên dương x và y.
Ví dụ:
| INPUT | OUTPUT | Giải thích |
|---|---|---|
| 6 | 2 3 | 6 có 2 cách phân tích thành tích của 2 số nguyên là (1, 6) và (2, 3); trong đó cách phân tích thành 2 số 2 và 3 cho kết quả tổng nhỏ hơn. |
Bình luận
include <bits/stdc++.h>
using namespace std;
int main() { int n;cin>>n; long long x=1; long long y=n; int m=sqrt(n);; for(int i=2;i<=m;++i) { if(n%i==0) { int j=n/i; if(x+y>i+j) { x=i; y=j; } } } cout<<x<<" "<<y; return 0; }