Pagini recente » Cod sursa (job #1941364) | Cod sursa (job #838386) | Cod sursa (job #1630688) | Cod sursa (job #2309787) | Cod sursa (job #402807)
Cod sursa(job #402807)
#include<stdio.h>
#include<math.h>
long int functie(long int n,long int p)
{
long int s=0;
while(n)
{
s=s+n/p;
n=n/p;
}
return s;
}
long int patru(long int n)
{
long int s=0;
long int i;
for(i=1;i<=n;i++)
{
long int t=i;
while(t%2==0)
{
s++;
t=t/2;
}
}
return s;
}
long int sase(long int n)
{
long int s1=0;
long int s2=0;
long int i;
for(i=1;i<=n;i++)
{
long int t=i;
long int q=i;
while(t%2==0)
{
s1++;
t=t/2;
}
while(q%3==0)
{
s2++;
q=q/3;
}
}
if(s1>s2)
{
return s2;
}else
{
if(s1<s2)
{
return s1;
}else
{
return s1;
}
}
}
int main()
{
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
long int r,j,n,k1=0,k2=0,k3=0,d,p,c=0,i,q,s,t;
scanf("%ld%ld",&r,&d);
if(d==2||d==3||d==5)
{
k1=functie(r,d);
}else
{
if(d==4)
{
k1=patru(r);
}else
{
if(d==6)
{
k1=sase(r);
}
}
}
for(j=0;j<=r;j++)
{
p=r-j;
if(d==2||d==3||d==5)
{
k2=functie(p,d);
k3=functie(j,d);
if(k1-k2-k3>0)
{
c++;
}
}
else
{
if(d==4)
{
k2=patru(p);
k3=patru(j);
if(k1-k2-k3>0&&(k1-k2-k3)%2==0)
{
c++;
}
}
else
{
k2=sase(p);
k3=sase(j);
if(k1-k2-k3>0)
{
c++;
}
}
}
k2=0;
k3=0;
}
printf("%ld",c);
return 0;
}