Cod sursa(job #1392677)

Utilizator ZeBuGgErCasapu Andreas ZeBuGgEr Data 18 martie 2015 20:14:07
Problema GFact Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 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,div,past,keep;
    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)
        {
            m=i;
            while(p%i==0)
            {
                p/=i;
            }
        }
    }
    q*=2;
    keep=sqrt(q);
    for(int i=keep;;i++)
    {
        if(i*(i+1)>=q)
        {
            fprintf(fout,"%d",i*m);
            break;
        }
    }
}