Pagini recente » Cod sursa (job #963758) | Cod sursa (job #1772382) | Cod sursa (job #173689) | Cod sursa (job #2285931) | Cod sursa (job #1393090)
#include<cstdio>
#include<math.h>
int main()
{
FILE *fin,*fout;
fin=fopen("gfact.in","r");
fout=fopen("gfact.out","w");
int p,q,m=0,div,past,keep,val;
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)
{
val=i;
while(p%val==0)
{
val*=i;
}
val/=i;
p/=val;
if(m<val)
{
m=val;
}
}
}
q*=2;
keep=sqrt(q);
for(int i=keep;;i++)
{
if(i*(i+1)>=q)
{
fprintf(fout,"%d",i*m);
break;
}
}
}