Pagini recente » Cod sursa (job #1265622) | Cod sursa (job #2284555) | Cod sursa (job #1038993) | Cod sursa (job #1667375) | Cod sursa (job #2089948)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("pascal.in");
ofstream out("pascal.out");
long long r,d,cnt;
int v[6][5000001];
bool is4=false;
void calc(int nr)
{
for(int i = 1;i<=r;i++)
{
v[nr][i]=v[nr][i-1];
int cop=i;
while(cop%nr==0)
{
v[nr][i]++;
cop/=nr;
}
}
}
int main()
{
in>>r>>d;
if(d==2 || d==3 || d==5 || d==4)
{
if(d==4)
{
d=2;
is4=true;
}
calc(d);
for(int i = 1; i<=r/2; i++)
{
if(v[d][r]-v[d][r-i]-v[d][i]>(is4?1:0))
{
if(i==r/2)
{
if(r%2==0)
cnt++;
else
cnt+=2;
}
else
cnt+=2;
}
}
}
else
{
calc(2);
calc(3);
for(int i = 1; i<=r/2; i++)
{
if(v[2][r]-v[2][r-i]-v[2][i]>0 && v[3][r]-v[3][r-i]-v[3][i]>0)
{
if(i==r/2)
{
if(r%2==0)
cnt++;
else
cnt+=2;
}
else
cnt+=2;
}
}
}
out<<cnt;
return 0;
}