Pagini recente » Cod sursa (job #889007) | Cod sursa (job #2861668) | Cod sursa (job #24445) | Cod sursa (job #1208313) | Cod sursa (job #2650084)
#include <bits/stdc++.h>
using namespace std;
ifstream in("pascal.in");
ofstream out("pascal.out");
long long gfact(long long fact, int base)
{
long long nr_div = 0;
while(fact)
{
nr_div += fact / base; fact /= base;
}
return nr_div;
}
long long precalc[5000005];
int main()
{
long long r; int d; in >> r >> d;
long long cnt = 0;
int cutoff;
if(d == 4) cutoff = 1;
else cutoff = 0;
if(d == 6) d = 3;
if(d == 4) d = 2;
//for(int i = 0; i <= r; i++)
// precalc[i] = gfact(i, d);
for(int divs = d; divs <= r; divs*=d)
for(int index = 0; index*divs <= r; index += 1)
precalc[index*divs] += index;
for(long long j = 0; j < r/2; j++)
{
if(precalc[r] - precalc[r-j] - precalc[j] > cutoff)
cnt ++;
}
cnt *= 2;
if(r%2 == 0) if(precalc[r] - 2*precalc[r/2] > cutoff) cnt++;
out << cnt;
}