Cod sursa(job #1210284)

Utilizator hrazvanHarsan Razvan hrazvan Data 19 iulie 2014 16:20:25
Problema Pascal Scor 40
Compilator c Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
#define MAXR 5000000
int factor[MAXR + 1];

char divi(int a, int b){
  int rez = 0;
  while(a % b == 0){
    rez++;
    a /= b;
  }
  return rez;
}

void fct(int r, int d){
  if(d == 4)  d = 2;
  if(d == 6)  d = 3;
  int i;
  for(i = 1; i <= r; i++){
    factor[i] = factor[i - 1] + divi(i, d);
  }
  return ;
}

int main(){
  FILE *in = fopen("pascal.in", "r");
  int r, d;
  fscanf(in, "%d%d", &r, &d);
  fclose(in);
  fct(r, d);
  int i, rez = 0;
  for(i = 0; i <= r; i++){
    if(factor[r] - factor[i] - factor[r - i] > 0)  rez++;
  }
  FILE *out = fopen("pascal.out", "w");
  fprintf(out, "%d", rez);
  fclose(out);
  return 0;
}