Pagini recente » Cod sursa (job #3192978) | Cod sursa (job #1783817) | Cod sursa (job #1859657) | Cod sursa (job #181783) | Cod sursa (job #703685)
Cod sursa(job #703685)
#include <cstdio>
#include <bitset>
using namespace std;
bitset <105> a;
int c[105],puteri[105],psec[105],prime[50],dim;
void desc (int n){
int i;
if(a[n]!=0)
puteri[n]=0;
for(i=1;i<=dim&&n!=1;++i){
for(;n%prime[i]==0;){
n/=prime[i];
++puteri[prime[i]];
}
}
}
int main () {
int n,i,k,j;
long long af=1;
freopen("factoriale.in","r",stdin);
freopen("factoriale.out","w",stdout);
scanf("%d %d",&n,&k);
for(i=1;i<=n;++i)scanf("%d",&c[i]);
for(i=2;i*i<=100;++i){
if (a[i]==0)for(j=i+i;j<=100;j+=i)a[j]=1;
}
a[1]=1;
for(i=1;i<=100;++i)if(a[i]==0)prime[++dim]=i;
//fprintf(stderr,"%d\n",dim);
//for(i=1;i<=dim;++i)fprintf(stderr,"%d ",prime[i]);
for(i=1;i<=n;++i){
for(j=1;j<=100&&c[i]>=j;++j){
desc(j);
}
}
//for(i=2;i<=10;++i)fprintf(stderr, "%d ",puteri[i]);
for(i=1;i<=100;++i){
if(puteri[i]%k!=0){
if(a[i]==0){
af*=(k-puteri[i]%k)*1LL*i;
}
}
}
printf("%lld",af);
return 0;
}