Pagini recente » Cod sursa (job #1401388) | Cod sursa (job #1226779) | Cod sursa (job #1647970) | Cod sursa (job #1809893) | Cod sursa (job #1237212)
#include <fstream>
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
#define Nmax 5000001
#define Dmax 7
int v[Dmax][Nmax];
int exp(int, int) ;
int main()
{
int i, r, d, sol = 0, EXP, EXP2;
fin >> r >> d;
for(i = 2; i <= r; ++i)
{
v[2][i] = exp(2, i);
v[3][i] = exp(3, i);
v[5][i] = exp(5, i);
}
for(i = 1; i <= r; ++i)
{
switch(d)
{
case 2:
{
EXP = v[2][r] - v[2][r - i] - v[2][i];
if(EXP > 0) ++sol;
break;
}
case 3:
{
EXP = v[3][r] - v[3][r - i] - v[3][i];
if(EXP > 0) ++sol;
break;
}
case 4:
{
EXP = v[2][r] - v[2][r - i] - v[2][i];
if(EXP > 1) ++sol;
break;
}
case 5:
{
EXP = v[5][r] - v[5][r - i] - v[5][i];
if(EXP > 0) ++sol;
break;
}
case 6:
{
EXP = v[2][r] - v[2][r - i] - v[2][i];
EXP2 = v[3][r] - v[3][r - i] - v[3][i];
if(EXP > 0 && EXP2 > 0) ++sol;
break;
}
}
}
fout << sol << '\n';
return 0;
}
int exp(int p, int n)
{
int rez = 0, cpy = p;
for(; p <= n; rez += n / p, p *= cpy) ;
return rez;
}