Pagini recente » Cod sursa (job #1793459) | Cod sursa (job #1592430) | Cod sursa (job #1161253) | Cod sursa (job #924675) | Cod sursa (job #1368486)
#include <stdio.h>
int r,d;
int cate[5000001],cate2[5000001],cate3[5000001];
int minim(int a,int b)
{
if(a>b) return b;
return a;
}
int main()
{
freopen ("pascal.in","r",stdin);
freopen ("pascal.out","w",stdout);
scanf("%d%d",&r,&d);
if(d==6)
{
for(int i=3;i<=r;i*=3)
{
for(int j=1;j<=r/i;j++) cate3[i*j]++;
}
for(int i=2;i<=r;i*=2)
{
for(int j=1;j<=r/i;j++) cate2[i*j]++;
}
for(int i=2;i<=r;i++)
{
cate2[i]+=cate2[i-1];
cate3[i]+=cate3[i-1];
}
int counter=0;
//printf("%d %d %d\n",cate2[r],cate3[r],cate[r]);
for(int j=1;j<=r;j++)
{
// printf("%d %d %d\n",cate2[r-j]+cate2[j],cate3[r-j]+cate3[j],cate[r-j]+cate[j]);
if(minim(cate3[r]-cate3[r-j]-cate3[j],cate2[r]-cate2[r-j]-cate2[j])>0) counter++;
}
printf("%d\n",counter);
}
else if(d==5)
{
for(int i=5;i<=r;i*=5)
{
for(int j=1;j<=r/i;j++) cate3[i*j]++;
}
for(int i=2;i<=r;i++) cate3[i]+=cate3[i-1];
int counter=0;
for(int j=1;j<=r;j++)
{
if(cate3[r]-cate3[r-j]-cate3[j]>0) counter++;
}
printf("%d\n",counter);
}
else if(d==4)
{
for(int i=2;i<=r;i*=2)
{
for(int j=1;j<=r/i;j++) cate3[i*j]++;
}
for(int i=2;i<=r;i++) cate3[i]+=cate3[i-1];
int counter=0;
for(int j=1;j<=r;j++)
{
if(cate3[r]-cate3[r-j]-cate3[j]>1)
{
counter++;
}
}
printf("%d\n",counter);
}
else if(d==3)
{
for(int i=3;i<=r;i*=3)
{
for(int j=1;j<=r/i;j++) cate3[i*j]++;
}
for(int i=2;i<=r;i++) cate3[i]+=cate3[i-1];
int counter=0;
for(int j=1;j<=r;j++)
{
if(cate3[r]-cate3[r-j]-cate3[j]>0)
{
counter++;
}
}
printf("%d\n",counter);
}
}