Pagini recente » Diferente pentru propuneri/6-arhiva-educationala intre reviziile 13 si 12 | Cod sursa (job #76679) | Cod sursa (job #2568052) | PreOni11-12 | Cod sursa (job #1563640)
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
const int Mx = 5000007;
int R,D,num,sol,a,b;
int p2[Mx],p3[Mx],p5[Mx];
int main()
{
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
scanf("%d %d",&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;
}
if (D == 2)
{
for (int i = 1;i <= R;a += p2[R - i + 1] - p2[i],i++)
sol += int(a > 0);
}
else
if (D == 3)
{
for (int i = 1;i <= R;a += p3[R - i + 1] - p3[i],i++)
sol += int(a > 0);
}
else
if (D == 4)
{
for (int i = 1;i <= R;a += p2[R - i + 1] - p2[i],i++)
sol += int(a > 1);
}
else
if (D == 5)
{
for (int i = 1;i <= R;a += p5[R - i + 1] - p5[i],i++)
sol += int(a > 0);
}
else
if (D == 6)
{
for (int i = 1;i <= R;a += p2[R - i + 1] - p2[i],b += p3[R - i + 1] - p3[i],i++)
sol += int(a > 0 && b > 0);
}
printf("%d\n",sol);
return 0;
}