Cod sursa(job #324336)
Utilizator | Data | 15 iunie 2009 19:40:37 | |
---|---|---|---|
Problema | Pascal | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include<stdio.h>
int a[5000001],i,r,d;
long long nr;
int cat( int x)
{ int k;
while(x%d==0) k+=x/d, x/=d;
return k;
}
int main()
{
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
scanf("%d %d",&r,&d);
for(i=2;i<=r;i++){ a[i]=cat(i);
a[i]=a[i-1]+a[i];
}
for(i=r/2;i>=1;--i) if((a[r]-(a[r-i]+a[i]))>0) nr++;
if(r%2==0) printf("%d\n",2*nr-1);
else printf("%d\n",2*nr);
fclose(stdin);
fclose(stdout);
return 0;
}