Pagini recente » Cod sursa (job #395356) | Cod sursa (job #383988) | Cod sursa (job #561740) | Cod sursa (job #3121371) | Cod sursa (job #137210)
Cod sursa(job #137210)
#include<fstream.h>
#include<math.h>
ifstream f("factoriale.in");
ofstream g("factoriale.out");
int n,a[101],b[101],i,k;
void bord()
{for(int j=2;j<=100;j++)
if(b[j]==0)
for(int y=j*2;y<=100;y+=j)
b[y]=-1;
}
void lucr(int x)
{int q=x;
for(int j=2;j<=x&&q;j++)
while(q%j==0&&q)
{b[j]++;q/=j;}
}
int prod()
{int p=1;
if(b[2])
{if(b[2]>k&&b[2]%k)
p*=pow(2,k-b[2]%k);
if(b[2]<k)
p*=pow(2,k-b[2]);
}
for(int j=3;j<=97;j+=2)
if(b[j]>0)
{if(b[j]>k&&b[j]%k)
p*=pow(j,k-b[j]%k);
if(b[j]<k)
p*=pow(j,k-b[j]);
}
return p;
}
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)
f>>a[i];
bord();
for(i=1;i<=n;i++)
for(int l=2;l<=a[i];l++)
lucr(l);
g<<prod();
return 0;
}