Pagini recente » Istoria paginii utilizator/milka69 | Cod sursa (job #348043) | Statistici Luculescu Raul (LuculescuRaul) | Monitorul de evaluare | Cod sursa (job #1976564)
#include<bits/stdc++.h>
using namespace std;
ifstream f("factoriale.in");
ofstream g("factoriale.out");
int n,k,v[102];
int np[]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,47,53,59,61,67,71,73,79,83,89,91,97,0};
int fr[40];
int Huge[1002];
int main()
{
f>>n>>k;
for(int i=1;i<=n;++i)
f>>v[i];
sort(v+1,v+n+1);
int mmc=n;
for(int i=2;i<=v[n];++i)
{
while(v[n-mmc+1]<i)
--mmc;
int r=i;
for(int j=1;np[j]<=97;++j)
{
int cs=0;
while(r%np[j]==0)
{
r/=np[j];
++cs;
}
fr[j]+=mmc*cs;
}
}
Huge[1]=1;
int l=1;
for(int i=1;np[i]<=97;++i)
{
int val=k-fr[i]%k;
if(val==k)
val=0;
for(int q=1;q<=val;++q){
for(int r=1;r<=l;++r)
Huge[r]*=np[i];
for(int r=1;r<=l;++r)
{
Huge[r+1]+=Huge[r]/10;
Huge[r]%=10;
if(r==l && Huge[r+1])
++l;
}
}
}
for(int j=l;j>=1;--j)
g<<Huge[j];
return 0;
}