Pagini recente » Cod sursa (job #802021) | Cod sursa (job #1718792) | Cod sursa (job #492793) | Cod sursa (job #2786446) | Cod sursa (job #2914366)
#include <bits/stdc++.h>
using namespace std;
ifstream fin( "pascal.in" );
ofstream fout( "pascal.out" );
const int DIM = 5e5 + 5;
int v2[DIM], v3[DIM], v5[DIM];
int f2[DIM], f3[DIM], f5[DIM];
int main() {
int n, p;
fin >> n >> p;
for ( int i = 2; i <= n; ++i ) {
v2[i] = (i % 2 ? 0 : v2[i / 2] + 1);
v3[i] = (i % 3 ? 0 : v3[i / 3] + 1);
v5[i] = (i % 5 ? 0 : v5[i / 5] + 1);
}
for ( int i = 1; i <= n; ++i ) {
f2[i] = v2[i] + f2[i-1];
f3[i] = v3[i] + f3[i-1];
f5[i] = v5[i] + f5[i-1];
}
int res = 0;
for ( int j = 1; j < n; ++j ) {
int q2 = f2[n] - f2[n - j] - f2[j];
int q3 = f3[n] - f3[n - j] - f3[j];
int q5 = f5[n] - f5[n - j] - f5[j];
res += ( (p == 2 && q2) ||
(p == 3 && q3) ||
(p == 4 && q2 > 1) ||
(p == 5 && q5) ||
(p == 6 && q2 && q3) );
}
fout << res;
fin.close();
fout.close();
return 0;
}