Cod sursa(job #2736076)

Utilizator rares404AlShaytan - Balasescu Rares rares404 Data 3 aprilie 2021 10:07:41
Problema Factoriale Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <algorithm>
using namespace std;
long long n,k,p,c,j,a,x,i,d,exp;
int rez[100002],prim[102];
long long f[102];
ifstream cin("factoriale.in");
ofstream cout("factoriale.out");

void produs(int a[],int b,int c[]) {
  long long t=0,aux=0;
  for (long long i=1;i<=a[0];i++) {
    aux=a[i]*b+t;
    c[i]=aux%10;
    t=aux/10;
  }
  c[0]=a[0];
  while (t!=0) {
    c[0]++;
    c[c[0]]=t%10;
    t/=10;
  }
}

int main () {
  for (i=2;i<=100;i++) {
    if (prim[i] == 0)
      for (j=i+i;j<=100;j+=i) {
        prim[j]=1;
      }
  }
  cin>>n>>k;
  for (i=1;i<=n;i++) {
    cin>>a;
    for (j=2;j<=a;j++) {
      p=j;
      if (prim[j]==0) {
        while (p<=a) {
          f[j]+=a/p;
          p*=j;
        }
      }
    }
  }

  rez[1]=rez[0]=1;
  for (i=2;i<=97;i++) {
    if (f[i]>0) {
      if (f[i]%k!=0) {
        exp=k-f[i]%k;
        for (j=1;j<=exp;j++) {
          produs(rez,i,rez);
        }
      }

    }
  }
  for (i=rez[0];i>=1;i--) {
    cout<<rez[i];
  }
}