Pagini recente » Cod sursa (job #2183221) | Cod sursa (job #2608208) | Cod sursa (job #1161182) | Cod sursa (job #2957616) | Cod sursa (job #479166)
Cod sursa(job #479166)
#include<fstream>
using namespace std;
const char iname[]="factoriale.in";
const char oname[]="factoriale.out";
const int maxn=605;
ifstream f(iname);
ofstream g(oname);
int a[maxn],v[maxn],n,k,i,j,x,p;
void mul(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()
{
f>>n>>p;
for(i=1;i<=n;++i)
{
f>>j;
while(j)
++a[j],--j;
}
for(i=1;i<maxn;++i)
{
x=i;
for(j=2;j<=i;++j)
{
k=0;
while(x%j==0)
x/=j,++k;
v[j]+=a[i]*k;
}
}
k=p;
memset(a,0,sizeof(a));
a[0]=a[1]=1;
for(i=1;i<maxn;++i)
if(v[i]%k)
for(j=0;j<k-v[i]%k;++j)
mul(a,i);
for(i=a[0];i;--i)
g<<a[i];
g<<"\n";
}