Pagini recente » Cod sursa (job #464520) | Cod sursa (job #2284538) | Cod sursa (job #1721592) | Cod sursa (job #1882625) | Cod sursa (job #503067)
Cod sursa(job #503067)
#include <stdio.h>
using namespace std;
#define nmax 1000005
#define pt(i) (1<<(i))
bool prim[nmax];
int ok ( int x, int k )
{
int i, nrdiv = 0;
for (i = 1; i <= x; ++i)
if ( prim[i] && x % i == 0)
nrdiv ++;
if ( nrdiv == k) return 1;
return 0;
}
void solve ()
{
int i, n, k, j;
scanf("%d %d ", &n, &k);
for (i = 2; i <= n; ++i) prim[i] = true;
prim[1] = false;
for (i = 2; i <= n; ++i)
if ( prim[i] )
for (j = i+i; j <= n; j+=i)
prim[j] = false;
for (i = n; i >= 0; --i)
if ( ok (i, k) )
{
printf("%d\n", i);
return;
}
printf("0\n");
}
int main ()
{
int tcount, t;
freopen("divprim.in","r",stdin);
freopen("divprim.out","w",stdout);
scanf("%d ", &t);
for (tcount = 1; tcount <= t; ++tcount)
solve ();
return 0;
}