Pagini recente » Cod sursa (job #891760) | Cod sursa (job #2769931) | Cod sursa (job #420054) | Cod sursa (job #1554158) | Cod sursa (job #1815143)
#include <fstream>
#include <bitset>
#define DIM 101
using namespace std;
int n,i,j,d,p,k,k2,x,e;
int v[DIM],f[DIM],a[DIM];
bitset <DIM> ciur;
ifstream fin ("factoriale.in");
ofstream fout ("factoriale.out");
void produs (int nr){
int t = 0;
for (i=1;i<=a[0];i++){
a[i] = a[i]*nr + t;
t = a[i]/10;
a[i] %= 10;
}
while (t != 0){
a[++a[0]] = t%10;
t/=10;
}
}
int main (){
// 48 = 2*2*2*2*3
fin>>n>>k2;
for (i=2;i<=100;i++){
if (ciur[i] == 0){
for (j=i+i;j<=100;j+=i)
ciur[j] = 1;
f[++k] = i;
}
}
for (i=1;i<=n;i++){
fin>>x;
for (j=1;j<=k;j++){
// descompunem in factori primi fiecare numar din factorila
// si adaugam la exponent
p = f[j];
while (p<=x){
v[f[j]] += x/p;
p *= f[j];
}
}
}
a[0] = a[1] = 1;
for (i=1;i<=k;i++){
if (v[f[i]]%k2 != 0){//*****************************
// adunam la solutie f[i] la puterea k2-v[i]
// nr = f[i];
for (j=1;j<=k2-v[f[i]]%k2;j++)
produs (f[i]);
}
}
for (i=a[0];i>=1;i--)
fout<<a[i];
// exponentul trebuie sa fie k;
return 0;
}