Pagini recente » Cod sursa (job #753847) | Cod sursa (job #923879) | Cod sursa (job #2149676) | Cod sursa (job #1915175) | Cod sursa (job #2210433)
#include <bits/stdc++.h>
using namespace std;
const int N = 5000005;
int p2[N], p3[N], p5[N], d[3], cd[3];
int ant, n, dv, t;
int main()
{
ifstream fin("pascal.in");
ofstream fout("pascal.out");
fin >> n >> dv;
if (dv % 2 == 0)
{
for (int i = 2; i <= n; ++i)
{
if (i % 2 == 0) p2[i] = p2[i / 2] + 1;
}
}
if (dv % 3 == 0)
{
for (int i = 2; i <= n; ++i)
{
if (i % 3 == 0)
{
p3[i] = p3[i / 3] + 1;
}
}
}
if (dv % 5 == 0)
{
for (int i = 2; i <= n; ++i)
{
if (i % 5 == 0)
{
p5[i] = p5[i / 5] + 1;
}
}
}
if (dv % 2 == 0)
{
d[0]+= 1;
}
if (dv % 3 == 0)
{
d[1]+= 1;
}
if (dv % 4 == 0)
{
d[0]+= 1;
}
if (dv % 5 == 0)
{
d[2]+= 1;
}
for (int i = 1; i <= n; ++i)
{
cd[0]+=p2[n-i+1]-p2[i];
cd[1]+=p3[n-i+1]-p3[i];
cd[2]+=p5[n-i+1]-p5[i];
if (cd[0]>=d[0]&&cd[1]>=d[1]&&cd[2]>=d[2])
{
ant+=1;
}
}
fout<<ant<<endl;
return 0;
}