Pagini recente » Cod sursa (job #1349902) | Cod sursa (job #905680) | Cod sursa (job #1049999) | Cod sursa (job #3212584) | Cod sursa (job #779662)
Cod sursa(job #779662)
#include<stdio.h>
FILE *f = fopen("factoriale.in","r");
FILE *g = fopen("factoriale.out","w");
#define MaxN 130
#define MaxNumarMare 20000
#define ll long long
int N,K;
int A[MaxN];
int Best[MaxN];
int SolV[MaxNumarMare];
ll Sol = 1;
void citire(void)
{
fscanf(f,"%d %d",&N,&K);
for(int i=1;i<=N;i++)
fscanf(f,"%d ",&A[i]);
}
inline void Descompune(int a)
{
for(int i=2;i<=a;i++)
if(a%i == 0)
for(;a%i == 0;++Best[i],a/= i);
}
inline int Valoare(int x)
{
if(x%K == 0)
return 0;
return (x/K+1)*K-x;
}
void Rezolvare(void)
{
for(int i=1;i<=N;i++)
for(int j=2;j<=A[i];j++)
Descompune(j);
for(int i=1;i<=100;i++)
for(int j=Valoare(Best[i]);j;j--)
Sol = Sol*i;
}
int main()
{
citire();
Rezolvare();
fprintf(g,"%lld\n",Sol);
}