Cod sursa(job #1678055)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 6 aprilie 2016 23:02:47
Problema Factoriale Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <cstdio>
#define nmax 105
using namespace std;
int c[nmax],p[nmax],nrp;
int n,m,v[nmax];
int a[nmax];

void solve(int k)
{
    int j=2;
    while (k!=1) {
        while (k%j==0) {
            k/=j;
            v[j]++;
        }
        j++;
    }
}

int main()
{
    freopen("factoriale.in","r",stdin);
    freopen("factoriale.out","w",stdout);
    int i,j,k;
    for (i=2;i<=100;i++)
        c[i]=1;
    for (i=2;i<=100;i++)
        if (c[i]==1)
            for (j=i*i,p[++nrp]=i;j<=100;j++)
                c[j]=0;

    scanf("%d %d",&n,&m);
    for (i=1;i<=n;i++) {
        scanf("%d",&k);
        while (k) {
            solve(k);
            k--;
        }
    }
    a[0]=a[1]=1;
    for (i=1;i<=100;i++)
        while (v[i]%m) {
            v[i]++;
            for (j=1;j<=a[0];j++)
                a[j]*=i;
            a[0]+=2;
            for (j=1;j<=a[0];j++)
                if (a[j]>9) {
                    a[j+1]+=a[j]/10;
                    a[j]%=10;
                }
            while (a[a[0]]==0)
                a[0]--;
        }
    for (i=a[0];i>=1;i--)
        printf("%d",a[i]);

    return 0;
}