Pagini recente » Cod sursa (job #1946596) | Cod sursa (job #2134036) | Cod sursa (job #986837) | Cod sursa (job #2234291) | Cod sursa (job #2911607)
#include <fstream>
using namespace std;
ifstream cin("pascal.in");
ofstream cout("pascal.out");
short int mat[3][5000005];
char f2[2500005];
char f3[2000005];
char f5[2000005];
int main()
{
int n,d;
cin>>n>>d;
for(int i=1; i<=n; i++)
{
int ci=i,sum2=0,sum3=0,sum5=0;
if(i%2==0)
{
if(i%4==0)
{
f2[i/2]=f2[i/4]+1;
}
}
if(i%3==0)
{
if(i%9==0)
{
f3[i/3]=f3[i/9]+1;
}
}
if(i%5==0)
{
if(i%25==0)
{
f5[i/5]=f5[i/25]+1;
}
}
mat[0][i]=mat[0][i-1];
mat[1][i]=mat[1][i-1];
mat[2][i]=mat[2][i-1];
if(i%2==0)
mat[0][i]=mat[0][i-1]+f2[i/2]+1;
if(i%3==0)
mat[1][i]=mat[1][i-1]+f3[i/3]+1;
if(i%5==0)
mat[2][i]=mat[2][i-1]+f5[i/5]+1;
}
int cnt=0,c2=0,c3=0,c5=0;
while(d%2==0)
{
c2++;
d/=2;
}
while(d%3==0)
{
c3++;
d/=3;
}
while(d%5==0)
{
c5++;
d/=5;
}
for(int i=1; i<=n/2; i++)
{
int a2=mat[0][n]-mat[0][i]-mat[0][n-i];
int a3=mat[1][n]-mat[1][i]-mat[1][n-i];
int a5=mat[2][n]-mat[2][i]-mat[2][n-i];
if(a2>=c2&&a3>=c3&&a5>=c5&&i*2!=n)
cnt+=2;
else if(a2>=c2&&a3>=c3&&a5>=c5&&i*2==n)
cnt++;
}
cout<<cnt;
return 0;
}