Cod sursa(job #138910)

Utilizator hulparuadrianhulparu adrian hulparuadrian Data 19 februarie 2008 14:41:03
Problema Factoriale Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<iostream>
#include<fstream>
using namespace std;
                 ifstream fin("factoriale.in");
                 ofstream g("factoriale.out");

int f[100],i,n,k,maxp,poz,a[30000],o,m,l;
void factori(int o)
{
     for(i=2;i<=o;i++)
     {
          int d=2,aux=i;while(aux!=1)
          {
              while (aux%d==0)
                    if (f[d]+1!=k) {f[d]=k-(++f[d]%k);aux/=k;}
                       else {f[d]=0;aux/=d;}
                       d++;if (aux%d==0) maxp=d;
                                 }}}
void  make_sol(int m)
{
      int t=0,i,aux;
      for(i=0;i<=poz;i++)
      {aux=t+a[i]*m;a[i]=aux%10;t=aux/10;}
      while(t){a[++poz]=t%10;t/=10;}
      }
int main()
{
    fin>>n>>k;
    maxp=2;poz=0;a[0]=1;
    for(int l=1;l<=n;l++)
    {fin>>o;factori(o);}
for(m=2;m<=maxp;m++)
                    for(l=1;l<=f[m];l++)
                                              make_sol(m);
for(i=0;i<=poz;i++)
                   g<<a[i];
                   fin.close();
                   g.close();
}