Pagini recente » Cod sursa (job #2274770) | Cod sursa (job #795616) | Cod sursa (job #1708861) | Cod sursa (job #1728120) | Cod sursa (job #29030)
Cod sursa(job #29030)
#include <fstream.h>
#define max 50000
long p, q, baza[max], dim;
long exp[max];
void desc(long baza[max], long exp[max], long p, long q, long &dim)
{
long i, d=2;
while (p!=1)
{
if (p%d==0)
{for (i=0; i<dim; i++) if (baza[i]==d) break;
baza[i]=d;
while (p%d==0)
{p/=d; exp[i]++;}
exp[i]*=q;
if (i==dim) dim++;
}
d++;
}
}
int main()
{
long i, ci, j;
ifstream f("gfact.in");
ofstream g("gfact.out");
f>>p>>q;
f.close();
if (p==1) g<<"0\n";
else {
desc(baza, exp, p, q, dim);
i=2;
while (1)
{ci=i;
for (j=0; j<dim && ci!=1; j++)
while (ci%baza[j]==0 && exp[j])
{ci/=baza[j]; exp[j]--; }
for (j=0; j<dim; j++) if (exp[j]) break;
if (j==dim) break;
i++;
}
g<<i<<"\n";
}
g.close();
return 0;
}