Cod sursa(job #342655)

Utilizator ZethpixZethpix Zethpix Data 22 august 2009 19:28:11
Problema GFact Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
long p,q,a[1000002],b[1000002],i,k;
int main(){
	FILE *f,*g;
	f=fopen("gfact.in","r");
	g=fopen("gfact.out","w");
	fscanf(f,"%ld%ld",&p,&q);
	for(i=1;i<=1000000;i++){
		a[i]=0;
		b[i]=0;
	}
	k=0;
	if(p%2==0){
		a[++k]=2;
		while(p%2==0){
			b[k]++;
			p/=2;
		}
	}
	i=3;
	do{
		if(p%i==0){
			a[++k]=i;
			while(p%i==0){
				b[k]++;
				p/=i;
			}
		}
		i+=2;
	}while(p!=1);
	for(i=1;i<=k;i++){
		b[i]*=q;
	}
	long long nr=1;
	for(i=1;i<=b[k];i++)
		nr*=a[k];
	fprintf(g,"%lld\n",nr);
	fclose(f);
	fclose(g);
	return 0;
}