Pagini recente » Cod sursa (job #1481930) | Cod sursa (job #1175700) | Cod sursa (job #2003873) | Cod sursa (job #1144792) | Cod sursa (job #2148569)
#include<cstdio>
int v[5000005];
int v2[5000005];
int calc(int n,int p){
int rez=0,cp=p;
while(n>=p)
rez=rez+n/p,p=p*cp;
return rez;}
int main(){
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
int r,d,i,cnt=0,last,ci,cd;
scanf("%d%d",&r,&d);
cd=d;
if (d==2 || d==3 || d==5 || d==4){
if (d==4)
d=2;
for(i=1;i<=r;i++){
ci=i;
v[i]=v[i-1];
while(ci%d==0){
v[i]++;
ci/=d;}}}
if (d==6){
for(i=1;i<=r;i++){
ci=i;
v[i]=v[i-1];
v2[i]=v2[i-1];
while(ci%2==0){
v[i]++;
ci/=2;}
ci=i;
while(ci%3==0){
v2[i]++;
ci/=3;}}}
for(i=0;i<r/2+1;i++){
if (cd==2 || cd==3 || cd==5){
if (v[r]-v[i]-v[r-i]>=1)
cnt++;}
if (cd==4){
if (v[r]-v[i]-v[r-i]>=2)
cnt++;}
if (cd==6){
if (v[r]-v[i]-v[r-i]>=1 && v2[r]-v2[i]-v2[r-i]>=1)
cnt++;}}
if (r%2==0)
printf("%d\n",cnt*2-1);
else
printf("%d\n",cnt*2);
return 0;}