Số đặc biệt
View as PDFBờm đang học về số học, cậu rất yêu thích những con số có tính chất đặc biệt. Số đặc biệt là số có đúng ~3~ ước nguyên dương.
Yêu cầu: Cho ~N~ số nguyên dương lần lượt là ~a_1, a_2, \cdots, a_N~ (~1 \leq a_i \leq 10^9~). Với mỗi số ~a_i~, cần xác định số đặc biệt ~b_i~ nhỏ nhất không nhỏ hơn ~a_i~.
Input
Dữ liệu vào: Từ tệp văn bản SDB.INP gồm ~2~ dòng.
Dòng thứ nhất chứa một số ~N~ (~1 \leq N \leq 10^6~).
Dòng thứ hai gồm ~N~ số nguyên ~a_1, a_2, \cdots, a_N~ (~1 \leq a_i \leq 10^9~).
Output
Kết quả: Đưa ra tệp văn bản SDB.OUT gồm ~N~ số nguyên ~b_1, b_2, \cdots, b_N~ thỏa mãn yêu cầu đề bài.
Sample Input 1
3
6 3 20
Sample Output 1
9 4 25
Sample Input 2
5
1 10 5 100 7
Sample Output 2
4 25 9 121 9
Notes
Ở test ví dụ thứ nhất:
~9~ là số nhỏ nhất không nhỏ hơn ~6~ có 3 ước nguyên dương là ~1, 3, 9~.
~4~ là số nhỏ nhất không nhỏ hơn ~3~ có 3 ước nguyên dương là ~1, 2, 4~.
~25~ là số nhỏ nhất không nhỏ hơn ~20~ có 3 ước nguyên dương là ~1, 5, 25~.

Comments
SOLVE:
số có 3 uoc là binh phuong một số ngto nên ta chỉ cần viết sang ngto xong push những bình phuong của những ngto đó vào 1 vector rồi với mỗi phần tử a[i] ta dung lower_bound để tìm phần tử đầu tiên có trong vector đó
code tham khảo : https://ideone.com/gwlCSX
This comment is hidden due to too much negative feedback. Show it anyway.
include<bits/stdc++.h>
define ll long long
define N 50000
define buff iosbase::syncwith_stdio(0);cin.tie(0);cout.tie(0)
using namespace std; ll n; ll c[N+9]; void sang() { fill(c+2, c+N+1, 1); for(ll i=2; ii<=N; i++) if(c[i]==1) { for(ll j=ii; j<=N; j+=i) c[j]=0; } } ll xuly(ll x) { ll k=sqrt(x); while(1) { if(c[k]==1 && kk>=x) return kk; k++; } } int main() { ifstream cin("SDB.INP"); ofstream cout("SDB.OUT"); buff; cin>>n; sang(); while(n--) { ll x; cin>>x; cout<<xuly(x)<<" "; } return 0; }
thỉnh thoảng có 1 test quá thời gian bạn ơi
This comment is hidden due to too much negative feedback. Show it anyway.
CODE THAM KHẢO: https://ide.usaco.guide/ORkM31RvKtb7jYzZG20
https://www.ideone.com/yEe9KA
This comment is hidden due to too much negative feedback. Show it anyway.
This comment is hidden due to too much negative feedback. Show it anyway.
This comment is hidden due to too much negative feedback. Show it anyway.
This comment is hidden due to too much negative feedback. Show it anyway.
This comment is hidden due to too much negative feedback. Show it anyway.