Pagini recente » Cod sursa (job #2379370) | Cod sursa (job #392881) | Cod sursa (job #378265) | Cod sursa (job #3232431) | Cod sursa (job #503967)
Cod sursa(job #503967)
#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;
int pow(int a,int n){
int p = 1;
while ( n != 0 ){
if ( n %2 ){
p = p * a;
}
a = a * a;
n /= 2;
}
return p;
}
void ciur(){
for ( int i = 2 ; i <= 100 ; ++i ){
if ( !V[i] ){
for ( int j = i ; j <= 100 ; j = j + j )
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 ){
R = putere[j] % K;
if ( R != 0 ){
REZ *= pow(PR[j], K - R);
}
}
}
fprintf(g,"%lld\n",REZ);
fclose(f);
fclose(g);
return 0;
}