Pagini recente » Cod sursa (job #1126723) | Cod sursa (job #3216228) | Cod sursa (job #2567128) | Cod sursa (job #2822260) | Cod sursa (job #2734410)
#include <fstream>
using namespace std;
ifstream cin("factoriale.in");
ofstream cout("factoriale.out");
int cnt[100005], v[105], exp[105], f[105], prim[105], n, x, i, j, k, p, nr, s;
int exponent(int p, int x) {
int nr=p;
int s=0;
while (nr<=x){
s+=x/nr;
nr=nr*p;
}
return s;
}
void produs(int b, int a[]){
int t=0;
for(int i=1;i<=a[0];i++) {
a[i] = a[i]*b+t;
t = a[i]/10;
a[i]%=10;
}
while (t) {
a[++a[0]] = t%10;
t/=10;
}
}
int main(){
cin>>n>>k;
for (i=1;i<=n;i++)
cin>>v[i];
for (i=2;i<=100;i++)
if (f[i]==0) {
prim[++p]=i;
for (j=i+i;j<=100;j+=i)
f[j]=1;
}
for (i=1;i<=n;i++)
for (j=1;j<=p;j++)
exp[j]=exp[j]+exponent(prim[j], v[i]);
cnt[0]=1;
cnt[1]=1;
for (i=1;i<=p;i++) {
if (exp[i] == 0)
break;
while (exp[i]%k!=0) {
produs(prim[i], cnt);
exp[i]++;
}
}
for(i=cnt[0];i>=1;i--)
cout<<cnt[i];
return 0;
}