Pagini recente » Cod sursa (job #166007) | Cod sursa (job #1568932) | Cod sursa (job #93063) | Cod sursa (job #1340470) | Cod sursa (job #1872022)
#include <fstream>
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
int v[5000002],w[5000002];
int r,d,sol,i,nr,ok,doi,trei;
int main()
{
fin >> r >> d;
if (d == 2 || d == 3 || d == 5)
{
for (i=1; i<=r; i++)
{
nr = i;
while (nr%d == 0)
{
v[i]++;
nr /= d;
}
v[i] += v[i-1];
}
}
else
if (d == 4)
{
for (i=1; i<=r; i++)
{
nr = i;
while (nr%2 == 0)
{
v[i]++;
nr /= 2;
}
v[i] += v[i-1];
}
}
else
{
for (i=1; i<=r; i++)
{
nr = i;
while (nr%2 == 0)
{
v[i]++;
nr /= 2;
}
while (nr%3 == 0)
{
w[i]++;
nr /= 3;
}
v[i] += v[i-1];
w[i] += w[i-1];
}
}
for (i=0; i<=r; i++)
{
if (d == 6 && v[r]-v[r-i]-v[i] > 0 && w[r]-w[r-i]-w[i] > 0)
sol++;
if (d == 4 && v[r]-v[r-i]-v[i] > 1)
sol++;
else
if (d != 6 && d != 4 && v[r]-v[r-i]-v[i] > 0)
sol++;
}
fout << sol;
return 0;
}