Pagini recente » Cod sursa (job #1326021) | Cod sursa (job #2547870) | Cod sursa (job #1601345) | Cod sursa (job #1965586) | Cod sursa (job #137217)
Cod sursa(job #137217)
//frumoasa prb dar nu cred()ca rez e de 100
#include<stdio.h>
#define nmax 100
long long a[nmax];
int b[nmax];
int main()
{
freopen("factorial.in","r",stdin);
freopen("factorial.out","w",stdout);
int n,k;
long long solutie=1;
int i,j,aux;
int maxim1,poz=i,maxim2=0;
scanf("%d%d",&n,&k);
for(i=1; i<=n; ++i){
scanf("%d",&aux);
a[aux]=1;
if( aux >maxim1)
maxim1=aux;
}
//printf("%d %d %d %d\n",a[2],a[3],a[4],a[5]);
for(i=100,j=0; i>1; --i){
if( a[i] )
++j;
a[i]=j;
}
for(i=2; i<=nmax && a[i]; ++i){
if( !b[i])
for(j=i+i; j<=maxim1 && j<=nmax; j+=i){
b[j]=1;
a[j]*=j;
a[i]+=(a[j]/i);
}
// else
// if( a[i]>maxim2)
// maxim2=a[i];
}
for(i=2; i<=100 && i<=maxim1; ++i){
/*
if( a[i] && maxim2-a[i]>0 && !b[i]){
a[i]=(maxim2-a[i])*i; //printf("%d %d \n",a[i],i);
solutie*=a[i]; */
if( a[i] && !b[i]){
aux=a[i]%2;
if(aux)
solutie*=i;
}
}
printf("%lld\n",solutie);
return 0;
}