Pagini recente » Cod sursa (job #53714) | Cod sursa (job #3171240) | Cod sursa (job #2153156) | Cod sursa (job #2683323) | Cod sursa (job #1549547)
#include<cstdio>
struct aa{long long x,y;};
aa v[15];
void f()
{long long n,b,i,j,m,x,k,q,nr,sqq,sw,p,min;
long long s;
scanf("%lld%lld",&n,&b);
x=0;
min=9223372036854775809;
for(i=2;i*i<=b;i++)
if(b%i==0)
{x++;
v[x].x=i;
k=0;
while(b%i==0)
{b/=i;
k++;
}
v[x].y=k;
}
for(i=1;i<=x;i++)
{s=0;
q=1;
nr=0;
for(j=1;q<=n/v[i].x;j++)
{q=q*v[i].x;
nr++;
}
q=1;
for(j=1;j<=nr;j++)
{q=q*2;
k=n-q+1;
sqq=k%(q*2);
sw=k/(q*2)+1;
p=(k+sqq)*sw/2;
s+=p*j;
}
if(v[i].y/s<min)
min=v[i].y/s;
}
printf("%lld\n",min);
}
int main ()
{freopen ("zero2.in","r",stdin);
freopen ("zero2.out","w",stdout);
int i;
for(i=1;i<=10;i++)
f();
return 0;
}