Pagini recente » Cod sursa (job #1536982) | Cod sursa (job #3287477) | Cod sursa (job #2984613) | Cod sursa (job #1661342) | Cod sursa (job #1111442)
#include<fstream>
using namespace std;
int n,K,sol[1010];
int prime[55],nrp,Exp[55];
bool ciur[110];
inline void Inmulteste(int A[],int B)
{
int i,t=0;
for(i=1;i<=A[0] || t;i++,t/=10)
A[i]=(t+=A[i]*B)%10;
A[0]=i-1;
}
int main()
{
int i,j,p,X;
prime[++nrp]=2;
for(i=3;i<100;i+=2)
{
if(!ciur[i])
{
prime[++nrp]=i;
for(j=i*i;j<100;j+=2*i)
ciur[j]=true;
}
}
ifstream fin("factoriale.in");
fin>>n>>K;
while(n--)
{
fin>>X;
for(i=1;i<=nrp;i++)
{
p=prime[i];
while(X>=p)
{
Exp[i]+=X/p;
p*=prime[i];
}
}
}
fin.close();
sol[0]=sol[1]=1;
for(i=1;i<=nrp;i++)
{
Exp[i]%=K;
if(Exp[i])
{
Exp[i]=K-Exp[i];
for(j=1;j<=Exp[i];j++)
Inmulteste(sol,prime[i]);
}
}
ofstream fout("factoriale.out");
for(i=sol[0];i>0;i--)
fout<<sol[i];
fout<<"\n";
fout.close();
return 0;
}