Cod sursa(job #2475889)

Utilizator ana_valeriaAna 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;
}