Pagini recente » Cod sursa (job #2980704) | Cod sursa (job #290615) | Cod sursa (job #1039559) | Cod sursa (job #1544095) | Cod sursa (job #489959)
Cod sursa(job #489959)
#include <cstdio>
#include <cstring>
using namespace std;
FILE *f=fopen("divprim.in", "r");
FILE *g=fopen("divprim.out", "w");
typedef struct ciur
{
int nr;
bool k;
};
ciur cv[1000000];
int t;
void era()
{
for (int m=2; m<=100000; m+=2)
{
cv[m].nr++;
cv[m].k=1;
}
for (int i=3; i<=100000; i+=2)
{
if (cv[i].k==1)
{
continue;
}
for (int j=i; j<=100000; j+=i)
{
cv[j].nr++;
cv[j].k=1;
}
}
}
int erathostenes(int n, int k)
{
for (int l=n; l>=1; l--)
if (cv[l].nr==k) return l;
return 0;
}
int main()
{
fscanf(f, "%d", &t);
era();
for (int i=1; i<=t; ++i)
{
int n, k;
fscanf(f, "%d%d", &n, &k);
fprintf(g, "%d\n", erathostenes(n, k));
}
fclose(f);
fclose(g);
return 0;
}