Pagini recente » Cod sursa (job #1439157) | Cod sursa (job #2676112) | Cod sursa (job #8954) | Cod sursa (job #664736) | Cod sursa (job #3250747)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
struct Vector3 {
int p2, p3, p5;
Vector3(int _p2 = 0, int _p3 = 0, int _p5 = 0) {
p2 = _p2;
p3 = _p3;
p5 = _p5;
}
Vector3 operator+(Vector3 v) {
return Vector3(p2 + v.p2, p3 + v.p3, p5 + v.p5);
}
Vector3 operator-(Vector3 v) {
return Vector3(p2 - v.p2, p3 - v.p3, p5 - v.p5);
}
void operator+=(Vector3 v) {
*this = *this + v;
}
void operator-=(Vector3 v) {
*this = *this - v;
}
bool operator>=(Vector3 v) {
return (p2 >= v.p2 && p3 >= v.p3 && p5 >= v.p5);
}
};
int n, k, p, i, r;
static inline Vector3 GetFact(int a) {
Vector3 v;
while(a % 2 == 0) {
v.p2++;
a /= 2;
}
while(a % 3 == 0) {
v.p3++;
a /= 3;
}
while(a % 5 == 0) {
v.p2++;
a /= 5;
}
return v;
}
int main() {
fin >> n >> k;
Vector3 fk = GetFact(k);
Vector3 p;
for(i = 1; i < n; i++) {
p += GetFact(n - i + 1);
p -= GetFact(i);
if(p >= fk) r++;
}
fout << r;
return 0;
}