Pagini recente » Cod sursa (job #1954859) | Cod sursa (job #927033) | Cod sursa (job #630636) | Cod sursa (job #2750987) | Cod sursa (job #1379688)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int R,D,cnt[5000010][3],nr[3],c[3];
int ord(int x){
if (x==2) return 0;
else if (x==3) return 1;
else return 2;
}
int main() {
ifstream fin("pascal.in");
ofstream fout("pascal.out");
fin >> R >> D;
nr[0]=2,nr[1]=3,nr[2]=5;
int i,j,p,res=0;
for (i=1; i<=R; i++)
for (j=0; j<3; j++) {
p=nr[j];
while (p<=i) cnt[i][ord(nr[j])]+=i/p,p*=nr[j];
}
for (i=0; i<=R; i++) {
memset(c,0,sizeof(c));
for (j=0; j<3; j++) c[j]=cnt[R][j]-cnt[i][j]-cnt[R-i][j];
if (D==2) { if (c[0]>0) res++; }
else if (D==3) { if (c[1]) res++; }
else if (D==4) { if (c[0]>1) res++; }
else if (D==5) { if (c[2]) res++; }
else if (c[0] && c[1]) res++;
}
fout << res << "\n";
return 0;
}