#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
vector<int> primes;
int m, a, b, p, q;
int main()
{
primes.push_back(2);
for(int i = 3; i <= 10000; i ++)
{
int max = sqrt((double)i) + 1;
int counter = 0;
for(int j = 2; j < max; j ++)
{
if(i % j == 0)
{
counter ++;
break;
}
}
if(counter == 0)
{
primes.push_back(i);
}
}
while(scanf("%d %d %d", &m, &a, &b))
{
if(m == 0 && a == 0 && b == 0)
{
break;
}
double s = (double)a / b;
int res = 0;
for(int i = primes.size() - 1; i >= 0; i --)
{
for(int j = i; j <= primes.size() - 1; j ++)
{
if(primes[ i ] > m)
{
break;
}
if(primes[ j ] > m || primes[ i ] * primes[ j ] > m || (double) primes[ i ] / primes[ j ] < s)
{
continue;
}
else
{
if(primes[ i ] * primes[ j ] > res)
{
res = primes[ i ] * primes[ j ];
p = primes[ i ];
q = primes[ j ];
}
}
}
}
printf("%d %d\n", p, q);
}
return 0;
}
杭电ACM1239(搜索题)
最新推荐文章于 2019-08-07 21:52:54 发布