Pagini recente » Cod sursa (job #3005260) | Cod sursa (job #1690890) | Cod sursa (job #2881878) | Cod sursa (job #591524) | Cod sursa (job #1607339)
#include <fstream>
#include <cstdio>
#define NMAX 5000005
using namespace std;
int sum2 , sum3 , sum5 , p2 , p3 , p5 , sol[10] , n , d;
short int v[NMAX][3];
void read(int &x) {
int sign = 1;
char ch;
while(!isdigit(ch = getchar())) {
if(ch == '-') {
sign = -1;
}
else {
sign = 1;
}
}
do {
x = x * 10 + ch - '0';
}while(isdigit(ch = getchar()));
x *= sign;
}
int main() {
freopen("pascal.in" , "r" , stdin);
freopen("pascal.out" , "w" , stdout);
read(n) , read(d);
for(int i = 1 ; i <= n ; ++i) {
if(i % 2 == 0) {
v[i][0] = v[i / 2][0] + 1;
}
if(i % 3 == 0) {
v[i][1] = v[i / 3][1] + 1;
}
if(i % 5 == 0) {
v[i][2] = v[i / 5][2] + 1;
}
sum2 += v[i][0];
sum3 += v[i][1];
sum5 += v[i][2];
}
p2 = sum2;
p3 = sum3;
p5 = sum5;
for(int i = 1 ; i <= n ; ++i) {
p2 = p2 + v[i][0] - v[n - i + 1][0];
p3 = p3 + v[i][1] - v[n - i + 1][1];
p5 = p5 + v[i][2] - v[n - i + 1][2];
if(p2 != sum2) {
++sol[2];
}
if(p3 != sum3) {
++sol[3];
}
if(p5 != sum5) {
++sol[5];
}
if(sum2 - p2 > 1) {
++sol[4];
}
if(sum2 != p2 && sum3 != p3) {
++sol[6];
}
}
printf("%d" , sol[d]);
return 0;
}