Pagini recente » Cod sursa (job #2328163) | Cod sursa (job #1942446) | Cod sursa (job #936537) | Cod sursa (job #1448950) | Cod sursa (job #3155666)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("pascal.in");
ofstream g ("pascal.out");
const int NMAX = 5e6 + 5;
int d[4][NMAX+5];
int trim(int val, int dv){
int p = 0;
while(val % dv == 0)
p ++, val /= dv;
return p;
}
void precalcul(){
for(int i=2; i<=5; i++)
if(i != 4)
for(int j=i; j<=NMAX; j+=i)
d[i-2][j] = trim(j, i);
for(int i=2; i<=5; i++)
if(i != 4)
for(int j=1; j<=NMAX; j++)
d[i-2][j] += d[i-2][j-1];
}
int fact(int val){
int p = 1;
for(int i=1; i<=val; i++)
p *= i;
return p;
}
int main()
{
precalcul();
int cnt = 0;
int r, D;
f >> r >> D;
if(D < 6){
if(D == 4) D = 2;
for(int j=0; j<=r; j++){
if(d[D-2][r] - d[D-2][r-j] - d[D-2][j] > 0)
cnt ++;
//cout << r << ' ' << d[D][r] << ' ' << r-j << ' ' << d[D][r-j] << ' ' << j << ' ' << d[D][j] << endl;
}
g << cnt;
}
return 0;
}