#include #include std::vector primes; void makePrimes(){ const int N = 100000; static bool table[N]; memset(table, 0xffffffff, sizeof(table)); table[2] = true; for(int i = 2; i < N; i++){ if(table[i]){ for(int j = i + i; j < N; j += i){ table[j] = false; } primes.push_back(i); } } } int main(){ makePrimes(); //for(int i = 0; i < 10; i++){std::cout << primes[i] << std::endl;} while(true){ int m, a, b; int M = 0, Mp = 0, Mq = 0; std::cin >> m >> a >> b; if(m == 0 && a == 0 && b == 0){break;} for(int i = 0; i < primes.size() && primes[i] <= m; i++){ int p = primes[i]; for(int j = i; j < primes.size(); j++){ if((long long)primes[i] * primes[j] > (long long) m){ continue; } int q = primes[j]; if(a * q <= b * p){ if(M < p * q){ Mp = p; Mq = q; M = p * q; } } } } std::cout << Mp << ' ' << Mq << std::endl; } return 0; }