Pagini recente » Cod sursa (job #1250393) | Cod sursa (job #2118231) | Cod sursa (job #413488) | Cod sursa (job #3271152) | Cod sursa (job #548142)
Cod sursa(job #548142)
#include <fstream>
using namespace std;
ifstream in ("pascal.in");
ofstream out ("pascal.out");
int n, d, rez;
int fact (int n, int i) {
int rez = 0;
while (n % i == 0) {
++rez;
n /= i;
}
return -rez;
}
void fprim () {
int i, k = 0;
for (i = 1; i < (n + 1) >> 1; ++i) {
k += fact (i, d) - fact (n - i + 1, d);
rez += (k > 0);
}
rez <<= 1;
if (n % 2 == 0) {
k += fact (i, d) - fact (n - i + 1, d);
rez += (k > 0);
}
}
void f4 () {
int i, k = 0;
for (i = 1; i < (n + 1) >> 1; ++i) {
k += fact (i, 2) - fact (n - i + 1, 2);
rez += (k > 1);
}
rez <<= 1;
if (n % 2 == 0) {
k += fact (i, 2) - fact (n - i + 1, 2);
rez += (k > 1);
}
}
void f6 () {
int i, k = 0, k1 = 0;
for (i = 1; i < (n + 1) >> 1; ++i) {
k += fact (i, 2) - fact (n - i + 1, 2);
k1 += fact (i, 3) - fact (n - i + 1, 3);
rez += (k > 0) && (k1 > 0);
}
rez <<= 1;
if (n % 2 == 0) {
k += fact (i, 2) - fact (n - i + 1, 2);
k1 += fact (i, 3) - fact (n - i + 1, 3);
rez += (k > 0) && (k1 > 0);
}
}
void citire () {
in >> n >> d;
}
void exe () {
if (d == 2 || d == 3 || d == 5) {
fprim ();
}
if (d == 4) {
f4 ();
}
if (d == 6) {
f6 ();
}
}
void afisare () {
out << rez << '\n';
}
int main () {
citire ();
exe ();
afisare ();
return 0;
}