Pagini recente » Cod sursa (job #2507562) | Cod sursa (job #2423188) | Cod sursa (job #42110) | Cod sursa (job #741804) | Cod sursa (job #59709)
Cod sursa(job #59709)
#include <fstream.h>
#include <math.h>
unsigned long int p, q, a, produs;
int Prim(unsigned long int);
int main()
{
ifstream fin("gfact.in");
ofstream fout("gfact.out");
fin >> p >> q;
if (q == 1)
{
a = p;
produs = 1;
if (Prim(a) == 0)
fout << a;
else
for (int i = 2; i <= a; i++)
{
produs *= i;
if (produs %a == 0)
{
fout << i;
break;
}
}
}
else
{ produs = 1;
a =(int)pow(p, q);
for (int j = 2; j <= a; j++)
{
produs *= j;
if (produs %a == 0)
{
fout << j;
break;
}
}
}
fin.close();
fout.close();
return 0;
}
int Prim(unsigned long int x)
{
if (x == 1) return 0;
if (x == 2 || x == 3) return 0;
if (x %2 == 0) return 1;
for (unsigned long int ii = 3; ii * ii <= x; ii +=2)
if (x %ii == 0)
return 1;
return 0;
}