Pagini recente » Cod sursa (job #988193) | Cod sursa (job #1586308) | Cod sursa (job #2355965) | Cod sursa (job #85610) | Cod sursa (job #378354)
Cod sursa(job #378354)
#include <cstdio>
#include <cstring>
#define file_in "zero2.in"
#define file_out "zero2.out"
#define Nmax 60010
int n,i,prim[Nmax],p[Nmax],N,B,d,e,v[Nmax],suma,min,nrp,nrf,j,max,put,t;
int main()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
//ciurul lui erathostene
for (i=2;i<=60000;++i)
if (!prim[i])
{
p[++nrp]=i;
for (j=i+i;j<=60000;j+=i)
prim[j]=1;
}
for (t=1;t<=10;++t)
{
scanf("%d %d", &N, &B);
//descompune B
d=2;
e=0;
while(B%d==0)
{
e++;
B/=d;
}
if (e>0)
{
max=d;
v[d]=e;
}
d=3;
while(d*d>=B)
{
e=0;
while(B%d==0)
{
e++;
B/=d;
}
if (e>0)
{
max=d;
v[d]=e;
}
d+=2;
}
if (B>1) v[B]=1;
min=0x3f3f3f3f;
for (i=2;i<=max;++i)
if (v[i]>0)
{
put=i;
suma=0;
for (j=2;j<=N;++j)
{
nrf=0;
n=j;
d=put;
while(n>=d)
{
nrf+=n/d;
n/=d;
}
if (nrf!=0)
suma+=nrf;
}
if (suma/v[i]<min)
min=suma/v[i];
}
printf("%d\n", min);
}
fclose(stdin);
fclose(stdout);
return 0;
}