Pagini recente » Cod sursa (job #73969) | Cod sursa (job #1125989) | Cod sursa (job #1936192) | Cod sursa (job #1690956) | Cod sursa (job #248618)
Cod sursa(job #248618)
# include <stdio.h>
int D,p[7];
long long R;
int put(long long k, int d)
{
long long x;
x=R-k;
while (x%d==0) { x=x/d; p[d]++;}
x=k+1;
while (x%d==0) { x=x/d; p[d]--;}
return p[d];
}
int numar(long long k)
{
int nr=0;
switch (D) {
case 2: nr=put(k,2)>=1; break;
case 3: nr=put(k,3)>=1; break;
case 4: nr=put(k,2)>=2; break;
case 5: nr=put(k,5)>=1; break;
case 6: nr=(put(k,2)>=1 && put(k,3)>=1); break;
}
return nr;
}
int main(){
long long k, nr=0;
freopen("pascal.in", "r", stdin);
freopen("pascal.out", "w", stdout);
scanf("%lld %d",&R,&D);
for (k=0;k<(R+1)/2-1;k++)
nr=nr+numar(k);
nr=nr*2;
if (R%2==0) nr=nr+numar(k);
printf("%lld",nr);
return 0;
}