Cod sursa(job #342658)

Utilizator ZethpixZethpix Zethpix Data 22 august 2009 19:33:50
Problema GFact Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
long p,q,a[100002],b[100002],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<=100000;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=0;
	while(i<=b[k]){
		nr+=a[k];
		long long c=nr;
		long x=0;
		while (c%a[k]==0){
			x++;
			c/=a[k];
		}
		i+=x;
	}
	fprintf(g,"%lld\n",nr);
	fclose(f);
	fclose(g);
	return 0;
}