Pagini recente » Cod sursa (job #781274) | Cod sursa (job #2564858) | Cod sursa (job #1138941) | Cod sursa (job #2219919) | Cod sursa (job #1810617)
#include<fstream>
#include<algorithm>
#include<bitset>
using namespace std;
ifstream fin ("factoriale.in");
ofstream fout("factoriale.out");
long long sol,a,b,p[103],e[103],i,j,k,t,n,v[103];
bitset<103>f;
long long putere(long long a,long long b){
if(b==0){
return 1;
}
long long p=1;
while(b!=0){
if(b%2==1){
p=p*a;
}
a=a*a;
b/=2;
}
return p;
}
long long expo(long long nfact,long long prim){
long long r=0;
long long prod=prim;
while(prod<=nfact){
r+=nfact/prod;
prod*=prim;
}
return r;
}
int main(){
fin>>n>>t;
for(i=1;i<=n;i++){
fin>>v[i];
}
k=0;
for(i=2;i<=v[n];i++){
if(f[i]==0){
p[++k]=i;
for(j=i+i;j<=v[n];j+=i){
f[j]=1;
}
}
}
p[++k]=v[n]+1;
for(j=1;j<=n;j++){
for(i=1;p[i]<=v[j];i++){
e[i]+=expo(v[j],p[i]);
}
}
sol=1;
for(i=1;i<=k-1;i++){
if(e[i]%t!=0){
sol*=putere(p[i],t-(e[i]%t));
}
}
fout<<sol;
return 0;
}