Cod sursa(job #503969)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 25 noiembrie 2010 22:47:02
Problema Factoriale Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>

#define DIM 55

FILE*f=fopen("factoriale.in","r");
FILE*g=fopen("factoriale.out","w");

int N,K,p,PR[DIM],i,j,X,putere[DIM],x,R;
char V[105];
long long REZ;

void ciur(){
	
	for ( int i = 2 ; i <= 100 ; ++i ){
		if ( !V[i] ){
			for ( int j = i + i ; j <= 100 ; j += i )
				V[j] = 1;
			PR[++p] = i;
		}
	}
	
}

int main () {
	
	fscanf(f,"%d %d",&N,&K);
	
	ciur();
	
	for ( i = 1 ; i <= N ; ++i ){
		fscanf(f,"%d",&X);
		for ( j = 1 ; j <= p ; ++j ){
			x = PR[j];
			while ( x <= X ){
				putere[j] += X / x;
				x = PR[j] * x;
			}
		}
	}
	REZ = 1;
	for ( j = 1 ; j <= p ; ++j ){
		
		if ( putere[j] != 0 ){
			while ( putere[j] % K != 0 ){
				REZ *= PR[j];
				++putere[j];
			}
			
		}
		
	}
	
	fprintf(g,"%lld\n",REZ);
	
	fclose(f);
	fclose(g);
	
	return 0;
}