Cod sursa(job #1753393)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 6 septembrie 2016 14:26:13
Problema Divizori Primi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#define DIM 1000001
using namespace std;
int v[DIM],i,j,t,k,n;
int a[DIM][8];
ifstream fin ("divprim.in");
ofstream fout ("divprim.out");

int main (){
    v[0] = 0;
    v[1] = 0;
    for (i=2;i<=DIM;i++){
        if (v[i]==0)
            for (j=i;j<=DIM;j+=i)
                v[j]++;
    }
    // construim o matrice a
    // care e cel mai mare ne mai mic ca n care are
    // j factori primi
    // a[i][j] --- ce nr mai mic ca n are exact j factori
    for (i=1;i<DIM;i++){
        for (j=0;j<=7;j++)
            a[i][j]  = a[i-1][j]; // valoarea anterioarei
        a[i][v[i]] = i;
    }

    fin>>t;
    for (i=1;i<=t;i++){
        fin>>n>>k;
        if (k != 0)
            fout<<a[n][k]<<"\n";
        else{
            fout<<1<<"\n";
        }
        /*int ok = 0;
        for (j=n-1;j>=1;j--)
            if (v[j] == k){
                ok++;
                fout<<j<<"\n";
                break;
            }
        if (ok == 0)
            fout<<0<<"\n";
        */
    }

    return 0;
}