Cod sursa(job #2248522)
Utilizator | Data | 29 septembrie 2018 12:51:53 | |
---|---|---|---|
Problema | Divizori Primi | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.84 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("divprim.in");
ofstream g("divprim.out");
int T, N, K;
int divprim(int x)
{
int e=0, nr=0;
while(x%2==0)
{
x=x/2;
e++;
}
if(e>0)
nr++;
for(int d=3; d*d<=x; d+=2)
{
e=0;
while(x%d==0)
{
x=x/d;
e++;
}
if(e>0)
nr++;
}
if(x!=1)
nr++;
return nr;
}
void citire()
{
f>>T;
for(int i=0; i<T; i++)
{
f>>N>>K;
for(int j=N; j>=1; j--)
{
if(divprim(j)==K)
{
g<<j<<"\n";
break;
}
if(j==1)
g<<"0\n";
}
}
}
int main()
{
citire();
return 0;
}