Pagini recente » Cod sursa (job #1134286) | Cod sursa (job #1818291) | Cod sursa (job #1521876) | Cod sursa (job #1471690) | Cod sursa (job #67083)
Cod sursa(job #67083)
#include<fstream.h>
#include<stdio.h>
#include<math.h>
long long unsigned p;
long long unsigned q, b, nr;
long long unsigned a, v[10], ex;
void citire()
{
ifstream in("gfact.in");
in>>p>>q;
in.close();
}
int prim(long x)
{
if (x==2) return 1;
if (x==1) return 0;
if (x%2==0) return 0;
for (long long unsigned d=3; d*d<=x; d+=2)
if (x%d==0) return 0;
return 1;
}
void descomp()
{
int ok=1;
for (long long unsigned d=2; d<=p; d++)
{
if (p%d==0)
{
v[++nr]=d;
ex=0;
while (p%d==0) { p/=d; ex++;}
if (prim(p)) { v[++nr]=p; ex=1; ok=0;}
}
if (ok==0) break;
}
}
void aflu()
{
long long unsigned i, contor=0;
i=v[nr]*q*ex;/*
while (contor<=q*ex)
{ i+=v[nr];
long long unsigned j;
j=i;
if (j%v[nr]==0)
while (j%v[nr]==0)
{
contor+=q;
j/=v[nr];
}
}*/
freopen("gfact.out","w",stdout);
printf("%llu",i);
}
int main()
{
citire();
descomp();
aflu();
return 0;
}