Pagini recente » Cod sursa (job #1669471) | Cod sursa (job #2119654) | Cod sursa (job #1392517) | Cod sursa (job #2658672) | Cod sursa (job #1459602)
#include <fstream>
using namespace std;
int divFact(int n, int d)
{
int sol = 0;
int pd = d;
while(pd <= n)
{
sol += n / pd;
pd *= d;
}
return sol;
}
int power(int line, int col, int d)
{
if(d == 4)
{
return ((divFact(line, 2) - divFact(line - col, 2) - divFact(col, 2)) / 2);
}
else if(d == 6)
{
return min((divFact(line, 2) - divFact(line - col, 2) - divFact(col, 2)), (divFact(line, 3) - divFact(line - col, 3) - divFact(col, 3)));
}
else
{
return (divFact(line, d) - divFact(line - col, d) - divFact(col, d));
}
return 0;
}
int check(int line, int col, int d)
{
if(power(line, col, d))
return 1;
return 0;
}
int main()
{
int r, d;
int sol = 0;
ifstream f("pascal.in");
f >> r >> d;
f.close();
for(int j = 0; j <= r; j++)
sol += check(r, j, d);
ofstream g("pascal.out");
g << sol << "\n";
g.close();
return 0;
}