Pagini recente » Cod sursa (job #347245) | Cod sursa (job #2494210) | Cod sursa (job #1417204) | Cod sursa (job #2667407) | Cod sursa (job #369304)
Cod sursa(job #369304)
#include<cstdio>
int factor ( int n , int x )
{
int e= 0 , p = x ;
while ( n / p )
{
e += n/p;
p*=x;
}
return e ;
}
int fct ( int N , int x )
{
int 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 ) ;
int R , D , nrd , nrd1 , nrd2 , nrdiv = 0 , i ;
scanf ( "%d%d" , & R , & D ) ;
nrd = factor ( R , D ) ;
nrd1 = factor ( 1 , D ) ;
nrd2 = nrd;
for ( i=0 ; i < R ; ++ i )
{
nrd1 += fct ( i , D ) ;
if ( nrd1 > nrd ) continue;
if ( i != 0 )
nrd2 -= fct (R-i+1, D) ;
if ( nrd1 + nrd2 >= nrd ) continue;
++nrdiv;
}
printf ( "%d" , nrdiv ) ;
return 0 ;
}