Cod sursa(job #1848885)

Utilizator andrei1299Ghiorghe Andrei Alexandru andrei1299 Data 16 ianuarie 2017 19:48:18
Problema Divizori Primi Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <math.h>
#include <fstream>

using namespace std;
int ciur[1000005],n,k,t,nrp[400005],nr;

int main()
{
    int i,j,x;
    for(i=2;i<=1000000;i++)
    {
        if(ciur[i]==0)
        {
            nrp[++nr]=i;
            for(j=2*i;j<=1000000;j+=i)
                ciur[j]++;
        }
    }
    ifstream fin("divprim.in");
    ofstream fout("divprim.out");
    fin>>t;
    for(i=1;i<=t;i++)
    {
        fin>>n>>k;
        x=1;
        for(j=1;j<=k;j++)
            x*=nrp[j];
        if(x>n)
            fout<<0<<"\n";
        else
        {
            j=n;
            while(ciur[j]!=k && j>x)
                j--;
            fout<<j<<"\n";
        }
    }
    fin.close();
    fout.close();
    return 0;
}