Cod sursa(job #1393090)

Utilizator ZeBuGgErCasapu Andreas ZeBuGgEr Data 19 martie 2015 08:16:17
Problema GFact Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<cstdio>
#include<math.h>

int main()
{
    FILE *fin,*fout;
    fin=fopen("gfact.in","r");
    fout=fopen("gfact.out","w");

    int p,q,m=0,div,past,keep,val;
    fscanf(fin,"%d %d",&p,&q);

    if(p%2==0)
    {
        m=2;
        while(p%2==0)
        {
            p/=2;
        }
    }

    for(int i=3;i<=p;i+=2)
    {
        if(p%i==0)
        {
            val=i;
            while(p%val==0)
            {
                val*=i;
            }
            val/=i;
            p/=val;
            if(m<val)
            {
                m=val;
            }
        }
    }
    q*=2;
    keep=sqrt(q);
    for(int i=keep;;i++)
    {
        if(i*(i+1)>=q)
        {
            fprintf(fout,"%d",i*m);
            break;
        }
    }
}