Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long int ll;
- bool mark[1000006];
- ll isprime[1000006],psize=0;
- void sieve()
- {
- mark[0]=true;
- mark[1]=true;
- for(ll i=2; i*i<=1000006; i++)
- {
- if(mark[i]==false)
- {
- for(ll j=i*i; j<=1000006; j+=i)
- mark[j]=true;
- }
- }
- for(ll i=2; i<=1000006; i++)
- {
- if(mark[i]==false)
- isprime[psize++]=i;
- }
- }
- int main()
- {
- sieve();
- ll n,a,b,c,d,e,i,j,k,ans1,ans2;
- while(cin>>n>>a>>b)
- {
- if(n==0 && a==0 && b==0)
- break;
- ll mx=0;
- double x=(double)a/(double)b;
- for(i=0; isprime[i]*isprime[i]<=n; i++)
- {
- for(j=i; isprime[i]*isprime[j]<=n; j++)
- {
- double y=(double)isprime[i]/(double)isprime[j];
- c=isprime[i]*isprime[j];
- if(y>=x && y<=1 && c<=n)
- {
- if(mx<c)
- {
- mx=c;
- ans1=isprime[i];
- ans2=isprime[j];
- }
- if(mx>n)
- break;
- }
- }
- if(mx>n)
- break;
- }
- cout<<ans1<<" "<<ans2<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement