Pagini recente » Cod sursa (job #2095875) | c001 | Cod sursa (job #2803171) | Cod sursa (job #1931863) | Cod sursa (job #2518347)
#include <fstream>
using namespace std;
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
int sol[100],ciur[130],f[130],p[130],x[130],n,k,v[130],nr;
void produs(int a[], int nrmic){
int t=0;
for(int i=1;i<=a[0];i++,t/=10){
t+=a[i]*nrmic;
a[i]=t%10;
}
for(;t;t/=10){
a[0]++;
a[a[0]]=t%10;
}
}
int exponent(int x,int nrprim){
int aux=nrprim,var=0;
while(aux<=x){
var+=x/aux;
aux*=nrprim;
}
return var;
}
int main(){
fin>>n>>k;
for(int i=1;i<=n;i++){
fin>>v[i];
}
ciur[1]=1;
for(int i=2;i<=120;i++){
if(ciur[i]==0){
nr++;
p[nr]=i;
for(int j=i*2;j<=120;j+=i){
ciur[j]=1;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=nr;j++){
f[j]+=exponent(v[i],p[j]);
}
}
sol[0]=1;
sol[1]=1;
for(int i=1;i<=nr;i++){
if(f[i]==0){
break;
}
while(f[i]%k!=0){
produs(sol,p[i]);
f[i]++;
}
}
for(int i=sol[0];i>=1;i--){
fout<<sol[i];
}
}