Cod sursa(job #2475889)
Utilizator | Ana Valeria Duguleanu ana_valeria | Data | 17 octombrie 2019 18:54:56 |
---|---|---|---|
Problema | Divizori Primi | Scor | 30 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 1.05 kb |
#include <fstream>
using namespace std;
ifstream cin ("divprim.in");
ofstream cout ("divprim.out");
char ciur[1000050];
int main()
{
int i,j,t,nr,k;
ciur[0]=ciur[1]=-1;
for (i=2; i*i<=1000010; i++)
if (ciur[i]==0)
for (j=i*2; j<=1000010; j=j+i)
ciur[j]++;
cin>>t;
for (i=1; i<=t; i++)
{
cin>>nr>>k;
if (k==0)
{
if (nr>=1)
cout<<1<<"\n";
else
cout<<0<<"\n";
}
else
if (k==1)
{
while (ciur[nr]!=0 && ciur[nr]!=1 && nr>0)
nr--;
if (nr==0)
cout<<0<<"\n";
else
cout<<nr<<"\n";
}
else
{
while (ciur[nr]!=k && nr>0)
nr--;
if (nr==0)
cout<<0<<"\n";
else
cout<<nr<<"\n";
}
}
return 0;
}