Pagini recente » Cod sursa (job #98505) | Autentificare | Cod sursa (job #588627) | Cod sursa (job #2409222) | Cod sursa (job #548167)
Cod sursa(job #548167)
#include <cstdio>
int calc(int x,int p)
{
int nr=0;
while(x%p==0)
{
nr++;
x=x/p;
}
return nr;
}
int main()
{
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
int i,r,d,n,nr,nr1,nr2,nrr1,nrr2,nrr3,num=0,nr3;
scanf("%d%d",&r,&d);
nr1=0;
n=r;
if(d==2 || d==3 || d==5)
{
for(i=1;i<(n+1)/2;i++)
{
nr2=calc(r-i+1,d);
nr3=calc(i,d);
nr1+=nr2-nr3;
if(nr1>0)
num++;
}
num*=2;
if((n+1)%2==1)
{
nr2=calc(r-n/2+2,d);
nr3=calc(n/2+1,d);
nr1+=nr2-nr3;
if(nr1>0)
num++;
}
printf("%d\n",num);
return 0;
}
if(d==4)
{
for(i=1;i<(n+1)/2;i++)
{
nr2=calc(r-i+1,2);
nr3=calc(i,2);
nr1+=nr2-nr3;
if(nr1>1)
num++;
}
num*=2;
if((n+1)%2==1)
{
nr2=calc(r-n/2+2,2);
nr3=calc(n/2+1,2);
nr1+=nr2-nr3;
if(nr1>1)
num++;
}
printf("%d\n",num);
return 0;
}
nrr1=0;
if(d==6)
{
for(i=1;i<(n+1)/2;i++)
{
nr2=calc(r-i+1,2);
nr3=calc(i,2);
nr1+=nr2-nr3;
nrr2=calc(r-i+1,3);
nrr3=calc(i,3);
nrr1+=nrr2-nrr3;
if(nr1>0 && nrr1>0)
num++;
}
num*=2;
if((n+1)%2==1)
{
nr2=calc(r-n/2+2,2);
nr3=calc(n/2+1,2);
nr1+=nr2-nr3;
nrr2=calc(r-i+1,3);
nrr3=calc(i,3);
nrr1+=nrr2-nrr3;
if(nr1>0 && nrr1>0)
num++;
}
printf("%d\n",num);
return 0;
}
return 0;
}