Pagini recente » Cod sursa (job #3281914) | Cod sursa (job #234849) | Cod sursa (job #240071) | Cod sursa (job #3256721) | Cod sursa (job #2961524)
#include <iostream>
using namespace std;
FILE *in = fopen("pascal.in", "r"), *out = fopen("pascal.out", "w");
int R, D, res = 0;
int powers[2];
int factor(int N, int D) {
int pow = 0;
while (N >= 1 && N % D == 0){
N /= D;
++pow;
}
return pow;
}
int main()
{
fscanf(in, "%d %d", &R, &D);
powers[0] = powers[1] = 0;
for (int j = 1; j <= R; ++j){
if (D == 2 || D == 3 || D == 5) {
powers[0] += factor(R - j + 1, D) - factor(j, D);
if (powers[0])
++res;
}
else if (D == 6){
powers[0] += factor(R - j + 1, 2) - factor(j, 2);
powers[1] += factor(R - j + 1, 3) - factor(j, 3);
if (powers[0] && powers[1])
++res;
}
else if (D == 4){
powers[0] += factor(R - j + 1, 2) - factor(j, 2);
if (powers[0] >= 2)
++res;
}
}
fprintf(out, "%d", res);
fclose(in);
fclose(out);
}