Cod sursa(job #2974417)

Utilizator VmanDuta Vlad Vman Data 4 februarie 2023 07:02:30
Problema Factoriale Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int n, k;
bool marked[101];
int x[101];
vector<int> res(1, 1);

void mul(int p) {
    int c = 0;
    for (int i = 0; i < res.size(); ++i) {
        c = res[i] * p + c;
        res[i] = c % 10;
        c /= 10;
    }
    while (c) {
        res.push_back(c % 10);
        c /= 10;
    }
}

int main() {
    freopen("factoriale.in", "r", stdin);
    freopen("factoriale.out", "w", stdout);
    
    cin >> n >> k;
    for (int i = 0; i < n; ++i) {
        cin >> x[i];
    }
    
    for (int p = 2; p <= 100; ++p) {
        if (marked[p]) {
            continue;
        }
        int exp = 0;
        for (int i = p; i <= 100; i += p) {
            marked[i] = true;
        }
        for (int i = p; i <= 100; i *= p) {
            for (int j = 0; j < n; ++j) {
                exp += x[j] / i;
            }
        }
        
        while (exp % k) {
            ++exp;
            mul(p);
        }
    }
    
    reverse(res.begin(), res.end());
    for (auto it : res) {
        cout << it;
    }
    
    return 0;
}