Cod sursa(job #1549547)

Utilizator ipus1Stefan Enescu ipus1 Data 12 decembrie 2015 14:31:57
Problema Zero 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#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;
}