Pagini recente » Cod sursa (job #3204941) | Cod sursa (job #3244355) | Cod sursa (job #2236944) | Cod sursa (job #1644991) | Cod sursa (job #140986)
Cod sursa(job #140986)
#include <iostream>
#include <fstream>
using namespace std;
int R,
D, DD;
long pN, pK, pNK;
int main(int argc, char *argv[]) {
ifstream fin("pascal.in");
fin >> R >> D;
fin.close();
//cout << R << " " << D << endl;
DD = D;
if (4 == D)
DD = 2;
if (6 == D)
DD = 3;
for (long i = DD; i <= R; i *= DD)
pN += R / i;
if (4 == D)
pN /= 2;
pNK = pN;
pK = 0;
int aux, i;
long res(0);
for (int k(1); k <= R / 2; ++k) {
// pK
aux = k;
i = 0;
while (aux % DD == 0) {
aux /= DD;
++i;
}
pK += i;
aux = R - k + 1;
i = 0;
while (aux % DD == 0) {
aux /= DD;
++i;
}
pNK -= i;
// cout << k << " " << pK << " " << pNK << " -> " << pN - pK - pNK << endl;
if (pN - pK - pNK)
if ((R % 2 == 0) && (k == R / 2))
++res;
else
res += 2;
}
ofstream fout("pascal.out");
if (4 == D)
fout << res / 2 << endl;
else
fout << res << endl;
fout.close();
return 0;
}