Pagini recente » Cod sursa (job #3247801) | Cod sursa (job #2305661) | Cod sursa (job #2266583) | Cod sursa (job #1398001) | Cod sursa (job #1969720)
#include <cstdio>
#include <algorithm>
using namespace std;
FILE *f=fopen("pascal.in","r");
FILE *g=fopen("pascal.out","w");
int F[3];
int E[3];
int D;
int R;
void desc(int D)
{
for(int j=2;j*j<=D;j++)
{
if(D%j==0)
{
F[0]++;
F[F[0]]=j;
while(D%j==0)
{
D/=j;
E[F[0]]++;
}
}
}
if(D!=1||(D==1&&F[0]==0))
{
F[0]++;F[F[0]]=D;E[F[0]]=1;
}
}
int cateori(int nr)
{
int r[3]={0,0,0},rez=(1<<30);
for(int i=1;i<=F[0];i++)
{
int p1=F[i];
while(p1<=nr)
{
r[i]+=nr/p1;
p1*=F[i];
}
rez=min(rez,r[i]/E[i]);
}
return rez;
}
int main()
{
fscanf(f,"%d %d",&R,&D);
desc(D);
int rez=0;
for(int i=0;i<=R;i++)
{
if(cateori(R)-cateori(i)-cateori(R-i)>0)
rez++;
}
fprintf(g,"%d",rez);
fclose(f);
fclose(g);
return 0;
}