Pagini recente » Cod sursa (job #1928711) | Cod sursa (job #3279424) | Cod sursa (job #2740077) | Cod sursa (job #1100710) | Cod sursa (job #791960)
Cod sursa(job #791960)
#include <cstdio>
#include <algorithm>
using namespace std;
FILE *f = fopen ("pascal.in","r");
FILE *g = fopen ("pascal.out","w");
int R;
long long sol;
int getPower(int k, int D)
{
int rez = 0;
int p = D;
while ((R / p) > 0) {
rez += R / p;
p *= D;
}
p = D;
while ((k / p) > 0) {
rez -= k / p;
p *= D;
}
p = D;
while ((R - k) / p > 0) {
rez -= (R - k) / p;
p *= D;
}
return rez;
}
int main()
{
int D;
fscanf (f, "%d%d", &R, &D);
for (int k = 1; k < R; k++) {
if (D == 4) {
int p = getPower(k, 2);
if (p / 2 > 0)
sol++;
}
else if (D == 6) {
int p = getPower(k, 2);
int q = getPower(k, 3);
if (min(p, q) > 0)
sol++;
}
else {
int p = getPower(k, D);
if (p > 0)
sol++;
}
}
fprintf (g, "%lld\n", sol);
fclose(f);
fclose(g);
return 0;
}