Cod sursa(job #137217)

Utilizator testelatugelu testelatu testelatu Data 17 februarie 2008 10:18:52
Problema Factoriale Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasa a 9-a Marime 1.25 kb
//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;
}