Pagini recente » Cod sursa (job #2988448) | Cod sursa (job #1530980) | Cod sursa (job #1725439) | Cod sursa (job #2913035) | Cod sursa (job #774097)
Cod sursa(job #774097)
#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);
}