Cod sursa(job #2738109)

Utilizator BlueLuca888Girbovan Robert Luca BlueLuca888 Data 5 aprilie 2021 14:33:49
Problema Factoriale Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin  ("factoriale.in");
ofstream fout ("factoriale.out");

long long f[105];
long long n, k;
long long x, y;
long long sol[10005];

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

int main (){
    fin>>n>>k;
    for(long long i=1; i<=n; i++){
        fin>>x;
        for(long long j=2; j<=x; j++){
            y=j;
            while(y%2 == 0){
                f[2]++;
                y/=2;
            }

            for(long long d=3; d<=y/d; d+=2)
                while(y%d == 0){
                    f[d]++;
                    y/=d;
                }
            if(y != 1)
                f[y]++;
        }
    }

    sol[0]=sol[1]=1;
    for(long long i=2; i<=100; i++)
        if(f[i] != 0)
            while(f[i]%k != 0){
                f[i]++;
                prod(sol, i);
            }

    for(int i=sol[0]; i>=1; i--)
        fout<<sol[i];
    return 0;
}