Pagini recente » Cod sursa (job #2521364) | Istoria paginii utilizator/kwr1998 | Istoria paginii utilizator/sino93 | Istoria paginii utilizator/nicusor.petcu | Cod sursa (job #577066)
Cod sursa(job #577066)
#include <fstream>
using namespace std;
ifstream in("factoriale.in");
ofstream out("factoriale.out");
const int N=101;
int n,k,v[N],rez[1000005],prim[27],a,m;
bool c[N];
void ciur()
{
for(int i=2;i*i<N;++i)
if(!c[i])
for(int j=i*i;j<N;j+=i)
c[j]=true;
for(int i=2;i<N;++i)
if(!c[i])
prim[++m]=i;
}
int poww(int n,int x)
{
int i,r=0;
for(i=x;i<=n;i*=x)
r+=n/i;
return r;
}
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;
}
void rezi()
{
in>>n>>k;
for(int i=1;i<=n;++i)
{
in>>a;
for(int j=1;j<m+1;++j)
v[j]+=poww(a,prim[j]);
}
rez[0]=rez[1]=1;
for(int i=1;i<=m;++i)
while(v[i]%k)
{
++v[i];
mul(rez,prim[i]);
}
for(int i=rez[0];i;--i)
out<<rez[i];
}
int main()
{
ciur();
rezi();
return 0;
}