Cod sursa(job #2259542)

Utilizator LuciBBadea Lucian LuciB Data 13 octombrie 2018 14:16:48
Problema Divizori Primi Scor 55
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <stdio.h>
#define NMAX 1000000
int div[NMAX+1]; // un vector care pastreaza numarul de divizori pentru fiecare numar in intervalul [1, NMAX]
int main(){
  int d, i, t, n, k, x;
  FILE *fin, *fout;
  for(d=2;d<=NMAX;d++)
    if(div[d]==0)
      for(i=d; i<=NMAX; i=i+d)
        div[i]++;
  fin=fopen("divprim.in", "r");
  fout=fopen("divprim.out", "w");
  fscanf(fin, "%d", &t);
  for(i=0; i<t; i++){
    fscanf(fin, "%d%d", &n, &k);
    x=n-1;
    while(x>0 && div[x]!=k)
      x--;
    fprintf(fout, "%d\n", x);
  }
  fclose(fin);
  fclose(fout);
  return 0;
}