Cod sursa(job #2656193)

Utilizator YusyBossFares Yusuf YusyBoss Data 7 octombrie 2020 06:57:25
Problema Divizori Primi Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#define VALMAX 1000000
#define KMAX 7

int c[VALMAX + 1], sol[KMAX + 1][VALMAX + 1];

int maxim(int a, int b) {
  return a > b ? a : b;
}

void ciur() {
  int i, j;
  for (i = 2; i <= VALMAX;  i++)
    if (c[i] == 0)
      for (j = i; j <= VALMAX; j += i)
        c[j]++;
}


int main() {
  FILE *fin, *fout;
  int t, n, k, nr;
  fin = fopen("divprim.in", "r");
  fscanf(fin, "%d", &t);

  ciur(n);
  for (k = 1; k <= KMAX; k++) {
    for (n = 1; n <= VALMAX; n++) {
      sol[k][n] = maxim( sol[k][n - 1], (c[n] == k) * n );
    }
  }

  fout = fopen("divprim.out", "w");
  while (t--) {
    fscanf(fin, "%d%d", &n, &k);
    fprintf(fout, "%d\n", sol[k][n]);
  }

  fclose( fin );
  fclose( fout );
  return 0;
}