Cod sursa(job #2625672)

Utilizator Teodora1314Teodora Oancea-Negoita Teodora1314 Data 6 iunie 2020 06:53:18
Problema GFact Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <iostream>
#include <fstream>
using namespace std;
long long p,q,k,nr,b=1,i,exp[100005],expp[100005],cop,ok;
int main()
{
    ifstream cin("gfact.in");
    ofstream cout ("gfact.out");
    cin>>p>>q;
    cop=p;
       while(p%2==0)
    {
        exp[2]++;
        p=p/2;
    }
    for(i=3; i*i<=p; i=i+2)
    {
        while(p%i==0)
        {
            exp[i]++;
            p=p/i;
        }
    }
    if(p>1) exp[p]++;
    for(i=1; i<=cop; i++)
    {
        if(exp[i]>0)
            exp[i]=q*exp[i];
    }
    while(ok==0)
    {
        nr++;
        b=b*nr;

        while(b%2==0)
        {
            expp[2]++;
            b=b/2;
        }
        for(i=3; i*i<=b; i=i+2)
        {
            while(b%i==0)
            {
                expp[i]++;
                b=b/i;
            }
        }
        if(b>1) expp[b]++;
        for(i=1;i<=cop;i++)
        {
            if(exp[i]==expp[i])
                ok=1;
            else
            {
                ok=0;
                break;
            }
        }
    }
    cout<<nr;
    return 0;
}