Cod sursa(job #1613744)
| Utilizator | Data | 25 februarie 2016 16:47:55 | |
|---|---|---|---|
| Problema | GFact | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1 kb |
#include <iostream>
#include <cstdio>
using namespace std;
FILE *f,*g;
int p,q,i,mx,cexp;
unsigned short exp[899999999];
bool ok;
int main()
{
f=fopen("gfact.in","r");
g=fopen("gfact.out","w");
fscanf(f,"%d%d",&p,&q);
int c=p;
for(i=2;i<=p;i++)
{
while(p%i==0)
{
p/=i;
exp[i]++;
}
exp[i]*=q;
if(exp[i])
mx=i;
}
/* for(i=1;i<=c;i++)
fprintf(g,"%d\n",exp[i]);*/
i=mx;
cexp=1;
if(q>1)
{
while(ok==0)
{
i+=mx;
if(i%mx==0)
{
c=i;
while(c%mx==0)
{
c/=mx;
cexp++;
}
if(cexp>=exp[mx])
{
ok=1;
break;
}
}
}
}
fprintf(g,"%d",i);
fclose(f);
fclose(g);
return 0;
}
