Pagini recente » Cod sursa (job #144077) | Cod sursa (job #1103700) | Cod sursa (job #3311543) | Cod sursa (job #1970764) | Cod sursa (job #504156)
Cod sursa(job #504156)
# include <fstream>
# include <iostream>
# include <algorithm>
using namespace std;
int n, k, v[103], p[103], ex[103], sol[500000];
void read ()
{
ifstream fin ("factoriale.in");
fin>>n>>k;
for(int i=1;i<=n;++i)
fin>>v[i];
}
void prime ()
{
p[1]=2;
p[0]=1;
int pp;
for(int i=3;i<=100;i+=2)
{
pp=1;
for(int j=1;j<=p[0] && pp;++j)
if(i%p[j]==0)
pp=0;
if (pp)
p[++p[0]]=i;
}
}
void inm (int n)
{
int q, t=0;
for(int i=1;i<=sol[0];++i)
{
q=n*sol[i]+t;
sol[i]=q%10;
t=q/10;
}
while(t)
{
sol[++sol[0]]=t%10;
t/=10;
}
}
void solve ()
{
int poz=1, nr;
for (int i=1;i<=n;++i)
for(int k=1;k<=v[i];++k)
{
nr=k;
for(int j=1;nr>1;++j)
while (nr%p[j]==0)
{
++ex[j];
nr/=p[j];
}
}
sol[0]=sol[1]=1;
for(int i=1;i<=p[0];++i)
if (ex[i]%k)
for(int j=1;j<=k-ex[i]%k;++j)
inm(p[i]);
}
int main ()
{
read ();
prime ();
solve ();
ofstream fout ("factoriale.out");
for(int i=sol[0];i;--i)
fout<<sol[i];
return 0;
}