#include #include #include using namespace std; void generate(list &primes) { bool flags[100000]; for(int i = 0; i < 100000; i++) flags[i] = false; for(int i = 2; i < 100000; i++) { if(flags[i]) continue; primes.push_back(i); for(int j = i + i; j < 100000; j += i) flags[j] = true; } } int main(void) { ifstream in("et.txt"); list primes; generate(primes); int m, a, b; while(in >> m >> a >> b) { if(m == 0 && a == 0 && b == 0) break; list::iterator p = primes.begin(), q; int pp = 1, qq = 1; while(p != primes.end()) { if((*p) * (*p) > m) break; q = primes.begin(); while(q != primes.end()) { if((*p) * (*q) > m) break; if(a * (*q) > b * (*p)) break; q++; } q--; if(pp * qq < (*p) * (*q)) { pp = *p; qq = *q; } p++; } cout << pp << " " << qq << endl; } return 0; }