Pagini recente » Cod sursa (job #1128083) | Cod sursa (job #2172932) | Cod sursa (job #152158) | Cod sursa (job #996302) | Cod sursa (job #1237221)
#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] = v[2][i-1] + exp(2, i);
v[3][i] = v[3][i-1] + exp(3, i);
v[5][i] = v[5][i-1] + 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;
while(n % p == 0) ++rez, n /= p;
return rez;
}