Cod sursa(job #2027457)
| Utilizator | Data | 26 septembrie 2017 09:34:03 | |
|---|---|---|---|
| Problema | Divizori Primi | Scor | 55 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.74 kb |
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("divprim.in");
ofstream fout("divprim.out");
const int Nmax = 1000000;
long long t, n, k, i, j, nr[Nmax+5];
bool ok, v[Nmax+5];
void ciur()
{
v[0] = 1;
v[1] = 1;
for(i=2; i<=Nmax; i++)
if(!v[i])
{
nr[i] = 1;
for(j=2; i*j<=Nmax; j++)
{
v[i*j] = 1;
nr[i*j]++;
}
}
}
int main()
{
fin >> t;
ciur();
for(i=1; i<=t; i++)
{
fin >> n >> k;
ok = 0;
while(nr[n]!=k && n>0)
n--;
fout << n << "\n";
}
fin.close();
fout.close();
return 0;
}
