Cod sursa(job #1708051)

Utilizator andreicoman299Coman Andrei andreicoman299 Data 26 mai 2016 14:30:32
Problema Divizori Primi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
#include <stdlib.h>
#define MAXN 1000000

int ciur[1+MAXN];
int d[1+MAXN][8];
int main(){
    int i, j, n, k;
    FILE*fi,*fo;
    fi=fopen("divprim.in","r");
    fo=fopen("divprim.out","w");
    ciur[0]=ciur[1]=0;
    for(i=2;i<=MAXN;i++)
        if(ciur[i]==0){
            for(j=i;j<=MAXN;j+=i)
                ciur[j]++;
        }
    for(i=1;i<=MAXN;i++){
        for(j=0;j<=7;j++)
            d[i][j]=d[i-1][j];
        d[i][ciur[i]]=i;
    }

    int t;
    fscanf(fi,"%d", &t);
    for(int i=0;i<t;i++){
        fscanf(fi,"%d%d", &n, &k);
        if(k!=0)
            fprintf(fo,"%d\n", d[n][k]);
        else{
            fprintf(fo,"1\n");
        }
    }
    fclose(fi);
    fclose(fo);
    return 0;
}