Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define ll long long
- #define nl "\n"
- void files(){
- ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL);
- #ifndef ONLINE_JUDGE
- freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);
- #endif
- }
- const int N = 1e8+1;
- ll spf[N];
- ll level[N];
- map<ll,set<ll>> inserted;
- void sieve(){
- for(ll i = 1; i < N; i++) spf[i] = i;
- for(ll i = 2; i*i < N; i++){
- if(spf[i] == i){
- for(ll j = i*i; j < N; j += i){
- if(spf[j] == j) spf[j] = i;
- }
- }
- }
- for(ll i = 2; i < N; i++){
- ll x = i;
- set<ll> st;
- while(x != 1){
- st.insert(spf[x]);
- x /= spf[x];
- }
- level[i] = (int)st.size();
- }
- }
- void solve(){
- ll q; cin>>q;
- for(ll i = 0; i < q; i++){
- char c; cin>>c;
- ll x; cin>>x;
- if(c=='>'){
- inserted[level[x]].insert(x);
- }else{
- if(inserted[level[x]].size() == 0){
- cout<<-1<<nl;
- }else
- cout<<*inserted[x].begin()<<nl;
- }
- }
- }
- int main(){
- files();
- sieve();
- int t = 1;
- // cin>>t;
- while(t--) solve();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement