Cod sursa(job #2386634)

Utilizator vladadAndries Vlad Andrei vladad Data 23 martie 2019 12:29:40
Problema Zero 2 Scor 4
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.3 kb

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ifstream f("zero2.in");
ofstream g("zero2.out");
ll n, x, nr, k, t, u[1000001], z;
struct fact
{
    ll a, b;
} v[1000001];
void desc(ll q)
{
    ll p=0;
    v[1000000].a= {0};
    v[1000000].b= {0};
    t=0;
    if(!(q & 1))
    {
        while(!(q & 1))
        {
            q=q>>1;
            p++;
        }
        v[++t].a=2;
        v[t].b=p;
    }
    ll d=3;
    while(d*d<=q)
    {
        if(q%d==0)
        {
            p=0;
            while(q%d==0)
            {
                q/=d;
                p++;
            }
            v[++t].a=d;
            v[t].b=p;
        }
        d+=2;
    }
    if(q>1)
    {
        v[++t].a=q;
        v[t].b=1;
    }
}
int main()
{
    for(int i=1; i<=10; i++)
    {
        z=0;
        u[1000000]= {0};
        f>>x>>k;
        desc(k);
        for(ll j=1; j<=t; j++)
        {
            nr=0;
            for(ll r=v[j].a; r<=x; r+=v[j].a)
            {
                ll s=r;
                while(s%v[j].a==0)
                {
                    s/=v[j].a;
                    nr++;
                }
            }
            u[++z]=nr/v[j].b;
        }
        sort(u+1, u+z+1);
        g<<u[1]<<'\n';
    }
    return 0;
}