Cod sursa(job #2274631)
| Utilizator | Data | 2 noiembrie 2018 10:51:58 | |
|---|---|---|---|
| Problema | Divizori Primi | Scor | 25 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("divprim.in");
ofstream out("divprim.out");
int nr[1000010], T, N, K, pr[1000010];
int main()
{
pr[0] = pr[1] = 1;
for(int i = 2;i <= 1000000;i++)
{
if(pr[i] == 0)
{
for(int j = i + i;j <= 1000000;j += i)
{
pr[j] = 1;
nr[j]++;
}
}
}
in >> T;
for(int i = 1;i <= T;i++)
{
in >> N >> K;
bool OK = true;
for(int i = N;OK && i >= 1;i--)
if(nr[i] == K)
{
OK = false;
out << i << '\n';
}
if(OK) out << 0 << '\n';
}
return 0;
}
