Pagini recente » Cod sursa (job #1382162) | Cod sursa (job #1338656) | Cod sursa (job #468232) | Cod sursa (job #788162) | Cod sursa (job #2523238)
#include <fstream>
#define dim 110
using namespace std;
int a[dim];
int f[dim];
int e[dim];
int pr[dim];
int sol[dim];
int i,j,n,u,k;
void calcularePrime (int pr[],int nr) {
for (i=2;i<=nr;i++) {
if (f[i]==0) {
j=i+i;
while (j<=nr) {
f[j]=1;
j+=i;
}
pr[++u]=i;
}
}
}
void produs (int a[],int p) {
int t=0;i;
for (i=1;i<=a[0];i++) {
t+=a[i]*p;
a[i]=t%10;
t/=10;
}
while (t) {
a[++a[0]]=t%10;
t/=10;
}
}
int exponent (int x,int p) {
int prod=p;
int s=0;
while (prod<=x) {
s+=x/prod;
prod*=p;
}
return s;
}
int main() {
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
fin>>n>>k;
for (i=1;i<=n;i++) {
fin>>a[i];
}
calcularePrime(pr,100);
for (i=1;i<=n;i++) {
for (j=1;j<=u;j++) {
e[j]+=exponent(a[i],pr[j]);
}
}
sol[0]=1;
sol[1]=1;
for (i=1;i<=u;i++) {
while (e[i]%k!=0) {
produs(sol,pr[i]);
e[i]++;
}
}
for (i=sol[0];i>=1;i--) {
fout<<sol[i];
}
/* for (i=1;i<=u;i++) {
fout<<pr[i]<<" ";
} */
return 0;
}