Pagini recente » Cod sursa (job #157034) | Cod sursa (job #2862576) | Cod sursa (job #309919) | Cod sursa (job #1278943) | Cod sursa (job #248620)
Cod sursa(job #248620)
# include <stdio.h>
long p[7]; int D;
long long R;
long 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;
}