Cod sursa(job #1856634)

Utilizator LeVladzCiuperceanu Vlad LeVladz Data 25 ianuarie 2017 10:42:53
Problema GFact Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <cmath>

using namespace std;

ifstream fin("gfact.in");
ofstream fout("gfact.out");

int p,q,i,d,o,v[500000000],nr,nrnr,j;
int verif(int x, int y, int z)
{
    int s = 0;
    while (x/y != 0)
    {
        s += x/y;
        y *= y;
    }
    if (s == z)
        return 1;
    else
        return 0;
}

int main()
{
    fin >> p >> q;
    o = p;
    for (d=2; d*d<=p; d++)
    {
        while (p%d == 0)
        {
            v[d]++;
            p /= d;
        }
    }
    if (p != 1)
        v[p]++;
    for (i=1; i<=o; i++)
        if (v[i] != 0)
        {
            v[i] *= q;
            nr++;
        }
    for (i=1; i>=1; i++)
    {
        nrnr = 0;
        for (j=2; j<=o; j++)
            if ((verif(i, j, v[j]) == 1) && (v[j] != 0))
                nrnr++;
        if (nrnr == nr)
        {
            fout << i;
            break;
        }
    }
    return 0;
}