Cod sursa(job #774097)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 3 august 2012 14:25:44
Problema Pascal Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include<fstream>
using namespace std;

int calc2(int nr){
    int s=0,p=2;
    while (nr/p>0){s+=nr/p; p*=2; }
    return(s);
}
int calc3(int nr){
    int s=0,p=3;
    while (nr/p>0){s+=nr/p; p*=3; }
    return(s);
}
int calc5(int nr){
    int s=0,p=5;
    while (nr/p>0){s+=nr/p; p*=5; }
    return(s);
}

int main(void){
    ifstream fin("pascal.in");
    ofstream fout("pascal.out");
    int n,d,i,sol=0,nrn,nrn1,lim;
    fin>>n>>d; lim=n/2;
     if (d==2){
               nrn=calc2(n); 
               for (i=0; i<=lim; ++i)
                if (nrn-calc2(n-i)-calc2(i)>0) ++sol;
                }
     else if (d==3){
              nrn=calc3(n);
               for (i=0; i<=lim; ++i)
                if (nrn-calc3(n-i)-calc3(i)>0) ++sol;
                }
     else if (d==5){
              nrn=calc5(n);
               for (i=0; i<=lim; ++i)
                if (nrn-calc5(n-i)-calc5(i)>0) ++sol;
                }
     else if (d==4){
              nrn=calc2(n);
               for (i=0; i<=lim; ++i)
                if (nrn-calc2(n-i)-calc2(i)>1) ++sol;
                }
     else {
          nrn=calc2(n); nrn1=calc3(n);
          for (i=0; i<=lim; ++i)
           if (nrn-calc2(n-i)-calc2(i)>0&&nrn1-calc3(n-i)-calc3(i)>0)++sol;
           }
     fout<<2*sol;
  return(0);
}