Advertisement
spider68

Chef and The Divisibility Queries

Mar 24th, 2020 (edited)
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.67 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int N= 100001;
  4. int main()
  5. {
  6.  
  7.     int n,q; cin>>n>>q;
  8.     vector<int>div[N];
  9.     for(int i=1;i<=n;i++)
  10.     {
  11.         int x; cin>>x;
  12.         for(int j=1;j<=sqrt(x);j++)
  13.         {   if(x%j==0 && j*j== x)
  14.             {
  15.                 div[j].push_back(i);
  16.             }
  17.             else if(x%j==0)
  18.             {
  19.                 div[j].push_back(i);
  20.                 div[x/j].push_back(i);
  21.             }
  22.         }
  23.     }
  24.     while(q--)
  25.     {
  26.         int l,r,k; cin>>l>>r>>k;
  27.         int ans = upper_bound(div[k].begin(),div[k].end(),r)-lower_bound(div[k].begin(),div[k].end(),l);
  28.         cout<<ans<<endl;
  29.     }
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement