Pagini recente » Cod sursa (job #171373) | Cod sursa (job #2221212) | Cod sursa (job #239890) | Cod sursa (job #284099) | Cod sursa (job #596771)
Cod sursa(job #596771)
#include<cstdio>
using namespace std;
int main()
{
int aux,i,n,d,sol=0,cnt,cnt2;
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
scanf("%d%d",&n,&d);
for(i=1;i<=n/2;++i)
{
cnt=0;cnt2=0;
if (d==2||d==3||d==5)
{
aux=n-i+1;
while(aux%d==0)
{
++cnt;
aux/=d;
}
aux=i;
while(aux%d==0)
{
--cnt;
aux/=d;
}
if (cnt)
sol+=2;
}
else if (d==4)
{
aux=n-i+1;
while(aux%2==0)
{
++cnt;
aux/=2;
}
aux=i;
while(aux%2==0)
{
--cnt;
aux/=2;
}
if (cnt>1)
sol+=2;
}
else
{
aux=n-i+1;
while(aux%2==0)
{
++cnt;
aux/=2;
}
aux=i;
while(aux%2==0)
{
--cnt;
aux/=2;
}
if (cnt>1)
sol+=2;
aux=n-i+1;
while(aux%2==0)
{
++cnt2;
aux/=2;
}
aux=i;
while(aux%2==0)
{
--cnt2;
aux/=2;
}
if (cnt&&cnt2)
sol+=2;
}
}
if (n%2==0)
--sol;
printf("%d\n",sol);
return 0;
}