Cod sursa(job #2636563)
Utilizator | Data | 18 iulie 2020 18:07:30 | |
---|---|---|---|
Problema | Divizori Primi | Scor | 25 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <iostream>
#include <fstream>
#define LMAX 1000005
using namespace std;
ifstream fin ("divprim.in");
ofstream fout ("divprim.out");
int prim[1000005];
int t, st, dr, k, loc;
void ciur() {
for (int i = 2; i <= LMAX; i += 2) {
if (prim[i] == 0)
for (int j = i * 2; j <= LMAX; j += i)
++prim[j];
if (i == 2)
--i;
}
return;
}
int main() {
ciur();
fin >> t;
while (t--) {
fin >> dr >> k;
while (dr--) {
if (prim[dr] == k)
break;
}
if (dr < 0)
dr = 0;
fout << dr << "\n";
}
return 0;
}