Pagini recente » Cod sursa (job #710002) | Cod sursa (job #842329) | Cod sursa (job #1841794) | Cod sursa (job #326880) | Cod sursa (job #2293342)
#include <fstream>
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
int R, D, ans;
int p2[5000005], p3[5000005], p5[5000005];
int main()
{
fin >> R >> D;
for(int i = 1; i <= R; i++)
{
if(i % 2 == 0)
p2[i] = p2[i / 2] + 1;
if(i % 3 == 0)
p3[i] = p3[i / 3] + 1;
if(i % 5 == 0)
p5[i] = p5[i / 5] + 1;
}
for(int i = 2; i <= R; i++)
{
p2[i] += p2[i - 1];
p3[i] += p3[i - 1];
p5[i] += p5[i - 1];
}
for(int i = 0; i < R / 2; i++)
{
int nr2 = p2[R] - p2[R - i] - p2[i];
int nr3 = p3[R] - p3[R - i] - p3[i];
int nr5 = p5[R] - p5[R - i] - p5[i];
if(D == 2 && nr2 > 0)
ans += 2;
else if(D == 3 && nr3 > 0)
ans += 2;
else if(D == 4 && nr2 > 1)
ans += 2;
else if(D == 5 && nr5 > 0)
ans += 2;
else if(D == 6 && nr2 > 0 && nr3 > 0)
ans += 2;
}
if(R % 2 == 0)
{
int i = R / 2;
int nr2 = p2[R] - p2[R - i] - p2[i];
int nr3 = p3[R] - p3[R - i] - p3[i];
int nr5 = p5[R] - p5[R - i] - p5[i];
if(D == 2 && nr2 > 0)
ans++;
else if(D == 3 && nr3 > 0)
ans++;
else if(D == 4 && nr2 > 1)
ans++;
else if(D == 5 && nr5 > 0)
ans++;
else if(D == 6 && nr2 > 0 && nr3 > 0)
ans++;
}
fout << ans;
return 0;
}