Cod sursa(job #1414316)

Utilizator ASTELOTudor Enescu ASTELO Data 2 aprilie 2015 15:24:32
Problema GFact Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<cstdio>
int n,q,v[21],vc[21],x=1,p,i,j,m,cate,vec[21];
int main ()
{
freopen("gfact.in","r",stdin);
freopen("gfact.out","w",stdout);
scanf("%d%d",&p,&q);
while(p!=1&&x*x<=p)
	{
	x++;
	int nr=0;
	while(p%x==0)
		{
		nr++;
		p/=x;
		}
	if(nr>0)
		{
		v[++cate]=x;
		vc[cate]=nr;
		}
	}
if(p!=1)
	{
	v[++cate]=p;
	vc[cate]=1;
	}
for(i=1;i<=cate;i++)
	{
	int nrr=0;
	for(j=1;j<=q*vc[i];j++)
		{
		nrr++;
		int cj=j;
		while(cj%v[i]==0)
			{
			nrr++;
			cj/=v[i];
			}
		if(nrr>=q)
			{
			vec[i]=j*v[i];
			break;
			}
		}
	}
int max=0;
for(i=1;i<=cate;i++)
	if(vec[i]>max)
		max=vec[i];
printf("%d",max);
return 0;
}