Cod sursa(job #2463934)

Utilizator ContNou1Cont nou 1 ContNou1 Data 28 septembrie 2019 13:24:15
Problema Divizori Primi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
/// Nicolae Antonio - Cristian, Colegiul "Nicolae Titulescu" Clasa a X-a A [email protected] sau [email protected]
#include <fstream>

using namespace std;

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

bool ciur[1000001];

int nrdivprim(int n)
{
    int cnt = 0;
    for(int i = 0; i < n; i++)
    {
        if(ciur[i] == 0)
            if(n % i == 0)
                cnt++;
    }
    return cnt;
}
int main()
{
    ciur[0] = 1;
    ciur[1] = 1;

    for(int i = 2; i * i <= 1000001; i++)
        for(int j = 2; j <= 1000001 / i; j++)
            ciur[i * j] = 1;
    int t;
    fin >> t;
    for(int i = 0; i < t; i++)
    {
        int n, k;
        fin >> n >> k;
        for(int j = n; j >= 0; j--)
        {
            if(j == 0)
            {
                fout << 0 << '\n';
                break;
            }
            if(nrdivprim(j) == k)
            {
                fout << j << "\n";
                break;
            }
        }
    }
    return 0;
}