Pagini recente » Cod sursa (job #476170) | Cod sursa (job #1431494) | Cod sursa (job #406228) | Cod sursa (job #109678) | Cod sursa (job #1455198)
#include <cstdio>
using namespace std;
int p2[5000005], p3[5000005], p5[5000005] ; /// de la 2 la 6, doar 2, 3 si 5 sunt prime
int main()
{
freopen ( "pascal.in","r",stdin ) ;
freopen ( "pascal.out","w",stdout ) ;
int r, d, i, ras = 0, r2 = 0, r3 = 0, r5 = 0 ;
scanf ( "%d%d",&r,&d ) ;
for ( i = 1 ; i <= r ; i ++ )
{
/// il descompunem pe r
if ( i % 2 == 0 )
p2[i] = 1 + p2[i/2] ;
if ( i % 3 == 0 )
p3[i] = 1 + p3[i/3] ;
if ( i % 5 == 0 )
p5[i] = 1 + p5[i/5] ;
}
for ( i = 1 ; i <= r - 1 ; i ++ )
{
r2 += p2[r-i+1] - p2[i] ;
r3 += p3[r-i+1] - p3[i] ;
r5 += p5[r-i+1] - p5[i] ;
switch ( d )
{
case 2 :
{
if ( r2 > 0 )
ras++;
break;
}
case 3 :
{
if ( r3 > 0 )
ras++;
break;
}
case 4 :
{
if ( r2 > 1 )
ras++;
break;
}
case 5 :
{
if ( r5 > 0 )
ras++;
break;
}
case 6 :
{
if ( r2 > 0 && r3 > 0 )
ras++;
break;
}
}
}
printf ( "%d",ras ) ;
return 0;
}