Pagini recente » Cod sursa (job #3295737) | Cod sursa (job #980433) | Cod sursa (job #2457059)
#include <cstdio>
using namespace std;
int n;
int prim(int x)
{
if(x==2 || x==3 || x==5)
return 1;
return 0;
}
int suma(int n, int d)
{
int s=0;
while(n)
{
int r=n/d;
s+=r;
n=r;
}
return s;
}
int d, sum2[5000001], sum3[5000001], sum5[5000001];
int main()
{
freopen("pascal.in", "r", stdin);
freopen("pascal.out", "w", stdout);
scanf("%d %d", &n, &d);
// int sus2=suma(n, 2);
// int sus3=suma(n, 3);
// int sus5=suma(n, 5);
int nr=0;
int sus2;
int sus3;
int sus5;
for(int i=1; i<=n; i++)
{
if(!i%2)
sum2[i]=1+sum2[i/2];
if(!i%3)
sum3[i]=1+sum3[i/3];
if(!i%5)
sum5[i]=1+sum5[i/5];
}
for(int i=1; i<n; i++)
{
sus2+=sum2[n-i+1]-sum2[i];
sus3+=sum3[n-i+1]-sum3[i];
sus5+=sum5[n-i+1]-sum5[i];
if(d == 2)
{
if(sus2>0)
nr++;
continue;
}
if(d == 3)
{
if(sus3>0)
nr++;
continue;
}
if(d == 4)
{
if(sus2>=2)
nr++;
continue;
}
if(d == 5)
{
if(sus5>0)
nr++;
continue;
}
if(d == 6)
{
if(sus2>0 && sus3>0)
nr++;
continue;
}
}
// sus2=cop2;
// sus3=cop3;
// sus5=cop5;
/*if(n%2)
{
int i=(n+1)/2;
sus2-=(suma(i, 2)+suma(n-i, 2));
sus3-=(suma(i, 3)+suma(n-i, 3));
sus5-=(suma(i, 5)+suma(n-i, 5));
if(d == 2)
{
if(sus2>0)
nr++;
}
else if(d == 3)
{
if(sus3>0)
nr++;
}
else if(d == 4)
{
if(sus2>=2)
nr++;
}
else if(d == 5)
{
if(sus5>0)
nr++;
}
else if(d == 6)
{
if(sus2>0 && sus3>0)
nr++;
}
}*/
printf("%d", nr);
return 0;
}