Pagini recente » Cod sursa (job #349654) | Cod sursa (job #2454673) | Cod sursa (job #2909430) | Cod sursa (job #2556991) | Cod sursa (job #369307)
Cod sursa(job #369307)
#include<cstdio>
long factor ( long n , long x )
{
long e= 0L , p = x ;
while ( n / p )
{
e += n/p;
p*=x;
}
return e ;
}
long fct ( long N , long x )
{
long e = 0 ;
if ( !N ) return 0 ;
while ( N % x == 0 )
{
++e;
N/=x;
}
return e ;
}
int main ( )
{
freopen ( "pascal.in" , "r" , stdin ) ;
freopen ( "pascal.out" , "w" , stdout ) ;
long R , D , nrd , nrd1 , nrd2 , nrdiv = 0 , i ;
scanf ( "%ld%ld" , & R , & D ) ;
nrd = factor ( R , D ) ;
nrd1 = 0L ;//factorial de i
nrd2 = nrd;//factorial (R-i)
for ( i=1 ; i < R ; ++ i )
{
nrd1 += fct ( i , D ) ;
if ( nrd1 > nrd ) continue;
nrd2 -= fct (R-i+1, D) ;
if ( nrd1 + nrd2 >= nrd ) continue;
++nrdiv;
}
printf ( "%d" , nrdiv ) ;
return 0 ;
}