Pagini recente » Cod sursa (job #1473605) | Cod sursa (job #1705514) | Cod sursa (job #2693470) | Cod sursa (job #2710476) | Cod sursa (job #2737147)
#include <fstream>
#include <algorithm>
using namespace std;
long long n,k,p,c,j,a,x,i,d,e,f[110];
int rez[100002],prim[110];
void produs(int *a,int *c,int b) {
long long t=0,aux=0;
for (long long i=1;i<=a[0];i++) {
aux=a[i]*b+t;
c[i]=aux%10;
t=aux/10;
}
c[0]=a[0];
while (t!=0) {
c[0]++;
c[c[0]]=t%10;
t/=10;
}
}
int main(){
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
for (i=2;i<=100;i++){
if (!prim[i])
for (j=i+i;j<=100;j+=i){
prim[j]=1;
}
}
fin>>n>>k;
for (i=1;i<=n;i++){
fin>>a;
for (j=2;j<=a;j++){
p=j;
if (prim[j]==0){
while (p<=a){
f[j]+=a/p;
p*=j;
}
}
}
}
rez[1]=rez[0]=1;
for (i=2;i<=100;i++){
if (f[i]>0){
if (f[i]%k!=0){
e=k-f[i]%k;
for (j=1;j<=e;j++){
produs(rez,rez, i);
}
}
}
}
for (i=rez[0];i>=1;i--){
fout<<rez[i];
}
return 0;
}