Cod sursa(job #922034)

Utilizator muscaTudose Vlad-Adrian musca Data 21 martie 2013 21:36:03
Problema Factoriale Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <cstdio>
using namespace std;
int i,nr=25,n,j,x,prod,k;
int v[]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
int a[31];
int poz(int val)
{
    int i;
    for(i=1;i<=25;i++)
        if(v[i]==val) return i;
}
void prim(int val)
{
    int i;
    for(i=2;i*i<=val;i++)
        if(val%i==0)
        {
            while(val&i==0)
            {
                a[poz(i)]++;
                val/=i;
            }
        }
    if(val!=1) a[poz(val)]++;
}
int main()
{
    freopen("factoriale.in","r",stdin);
    freopen("factoriale.out","w",stdout);
    scanf("%d%d",&n,&k);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&x);
        for(j=2;j<=x;j++)
            prim(j);
    }
    prod=1;
    for(i=1;i<=25;i++)
        if(a[i]%k!=0)
        {
            for(j=1;j<=k-a[i];j++)
                prod*=v[i];
        }
    printf("%d",prod);
    return 0;
}