Pagini recente » Cod sursa (job #2574841) | Cod sursa (job #1258283) | Cod sursa (job #1176723) | Cod sursa (job #280633) | Cod sursa (job #2104781)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
char v[5000001];
int fp[3], ep[3], nf;
int r, d, nr = 0;
void desc()
{
switch(d)
{
case 2:
case 3:
case 5:
nf = 1;
fp[1] = d;
ep[1] = 1;
break;
case 4:
nf = 1;
fp[1] = 2;
ep[1] = 2;
break;
case 6:
nf = 2;
fp[1] = 2;
fp[2] = 3;
ep[1] = ep[2] = 1;
}
}
int expp(int n, int p)
{
int e = 0;
while(p <= n)
{
e += n / p;
p *= p;
}
return e;
}
int divid(int k)
{
for(int i = 1; i <= nf; i++)
{
int e1 = expp(r, fp[i]);
int e2 = expp(r - k, fp[i]) + expp(k, fp[i]);
cout << e1 << ' ' << e2 << endl;
if(e1 - e2 < ep[i])
return 0;
}
return 1;
}
int main()
{
f >> r >> d;
desc();
int r2 = (r + 1) >> 1;
for(int k = 1; k < r2; k++)
nr += 2 * divid(k);
if((r & 1) == 0)
nr += divid(r2);
g << nr;
return 0;
}