Pagini recente » Cod sursa (job #2079586) | Cod sursa (job #1104032) | Imbunatatire teste | Cod sursa (job #1103374) | Cod sursa (job #1752471)
#include <bits/stdc++.h>
using namespace std;
ifstream in ( "pascal.in" );
ofstream out( "pascal.out" );
const int EXP = 1e0 + 3;
const int INF = 1e9 + 7;
const int DIM = 5e6 + 5;
const int c[EXP] = {2, 3, 5};
int v[EXP], d[EXP][DIM], n, p, ans;
int main( int argc, const char *argv[] ) {
in >> n >> p;
for( int k = 0; k <= 2; k ++ ) {
for( int i = 1; i <= n; i ++ ) {
if( i % c[k] == 0 )
d[k][i] = d[k][i / c[k]] + 1;
}}
for( int i = 1, j = 2; i < n && j <= ((n + 2) >> 1); i ++, j ++ ) {
for( int k = 0; k <= 2; k ++ )
v[k] += d[k][n-i+1] - d[k][i];
switch( p ) {
case 2: { if( v[0] >= 1 ) ans ++; break; }
case 3: { if( v[1] >= 1 ) ans ++; break; }
case 4: { if( v[0] >= 2 ) ans ++; break; }
case 5: { if( v[2] >= 1 ) ans ++; break; }
case 6: { if( v[0] >= 1 && v[1] >= 1 ) ans ++; break; }
}
if( j == ((n + 1) >> 1) )
ans <<= 1;
}
out << ans << endl;
return 0;
}