Pagini recente » Cod sursa (job #191785) | Cod sursa (job #1075940) | Cod sursa (job #1720112) | Cod sursa (job #50144) | Cod sursa (job #2911289)
#include <fstream>
using namespace std;
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
int n,k,v[105],divizori[105],ciur[105],x,q,f[105],prod=1;
void prim()
{
ciur[0]=ciur[1]=1;
for(int i=2;i<=100;i++)
{
if(ciur[i]==0)
{
divizori[++k]=i;
for(int j=2*i;j<=100;j=j+i)
{
ciur[j]=1;
}
}
}
}
int main()
{
fin>>n>>q;
prim();
for(int i=1;i<=n;i++)
{
fin>>x;
for(int j=2;j<=x;j++)
{
int xy=j;
for(int d=1;divizori[d]*divizori[d]<=j;d++)
{
if(j%divizori[d]==0)
{
while(j%divizori[d]==0)
{
f[divizori[d]]++;
j/=divizori[d];
}
}
}
if(j!=1)
{
f[j]++;
}
j=xy;
}
}
for(int i=1;i<=100;i++)
{
if(f[i])
{
for(int j=1;j<=f[i]%q;j++)
prod*=i;
}
}
fout<<prod;
}