Cod sursa(job #138308)

Utilizator kojocojocaru aurelian kojo Data 18 februarie 2008 10:38:29
Problema Koba Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<fstream.h>   
#include<math.h>   
ifstream f("factoriale.in");   
ofstream g("factoriale.out");   
int n,a[101],b[101],i,k;   
void bord()   
{for(int j=2;j<=100;j++)   
    if(b[j]==0)   
        for(int y=j*2;y<=100;y+=j)   
            b[y]=-1;   
}   
void lucr(int x)   
{int q=x;   
for(int j=2;j<=x&&q;j++)   
    while(q%j==0&&q)   
        {b[j]++;q/=j;}   
}   
int prod()   
{int p=1;   
if(b[2])   
    {if(b[2]>k&&b[2]%k)   
    p*=pow(2,k-b[2]%k);   
     if(b[2]<k)   
    p*=pow(2,k-b[2]);   
    }   
for(int j=3;j<=97;j+=2)   
    if(b[j]>0)   
        {if(b[j]>k&&b[j]%k)   
        p*=pow(j,k-b[j]%k);   
         if(b[j]<k)   
                p*=pow(j,k-b[j]);   
        }   
return p;   
}   
int main()   
{   
f>>n>>k;   
for(i=1;i<=n;i++)   
    f>>a[i];   
bord();   
for(i=1;i<=n;i++)   
   for(int l=2;l<=a[i];l++)   
    lucr(l);   
g<<prod();   
return 0;   
}