Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int isprime[100000],psize=0;
- bool mark[100000];
- void sieve()
- {
- int i,j,k;
- mark[0]=true;
- mark[1]=true;
- for(i=0;i*i<=100000;i++)
- {
- if(mark[i]==false)
- {
- for(j=i*i;j<=100000;j+=i)
- {
- mark[j]=true;
- }
- }
- }
- psize=0;
- for(i=2;i<=100000;i++)
- {
- if(mark[i]==false)
- isprime[psize++]=i;
- }
- }
- int main()
- {
- sieve();
- int n,t,i,j,k;
- cin>>t;
- while(t--)
- {
- cin>>n;
- int res=0,a=0;
- for(i=0;i<psize;i++)
- {
- if(isprime[i]>n)
- break;
- else
- {
- if(a<(n%isprime[i]))
- {
- res=isprime[i];
- a=n%isprime[i];
- }
- }
- }
- cout<<res<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement