Cod sursa(job #1490873)

Utilizator armandpredaPreda Armand armandpreda Data 24 septembrie 2015 12:24:23
Problema Divizori Primi Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>

using namespace std;

ifstream fin("divprim.in");
ofstream fout("divprim.out");

const int LIM=1000000;
int t, n, k, p[LIM+1];
void ciur()
{
    p[2]=1;
    for(int i=4; i<=LIM; i+=2)
        p[i]++;
    for(int i=3; i<=LIM; i+=2)
        if(!p[i])
        {
            p[i]=1;
            for(int j=i+i; j<=LIM; j+=i)
                p[j]++;
        }
}
int main()
{
    ciur();
    fin>>t;
    while(t--)
    {
        fin>>n>>k;
        bool flag=0;
        for(int i=n; i>=1; --i)
            if(p[i]==k)
            {
                flag=1;
                fout<<i<<'\n';
                break;
            }
        if(!flag)
            fout<<0<<'\n';
    }
    return 0;
}