Pagini recente » Cod sursa (job #115214) | Cod sursa (job #378425) | Cod sursa (job #1655937) | Cod sursa (job #173823) | Cod sursa (job #137953)
Cod sursa(job #137953)
#include<stdio.h>
#include<math.h>
int n,k,v[101],max,max2,factori[]={0,2,3,5,7,11,13,17,19,23,29,31,37};
unsigned long q=1;
void citire ()
{
int i,x,j,poz,g,a;
FILE *f;
f=fopen("factoriale.in","r");
fscanf(f,"%d%d",&n,&k);
for (i=1;i<=n;++i)
{
fscanf(f,"%d",&x);
for (g=2;g<=x;++g)
{
poz=1;
a=g;
while (a!=1)
{
while (a%factori[poz]==0)
{
a=a/factori[poz];
v[factori[poz]]++;
if (v[factori[poz]]>max2)
max2=v[factori[poz]];
}
++poz;
}
if (factori[poz-1]>max)
max=factori[poz-1];
}
}
fclose(f);
}
void solve ()
{
int i;
if (max2>k)
{
if (max2%k==0)
{ k=k; }
else
k=k*(max2/k+1);
for (i=2;i<=max;++i)
if (v[i]%k!=0)
q=q*pow(i,k-v[i]);
}
else
{
for (i=2;i<=max;++i)
if (v[i])
q=q*pow(i,k-v[i]);
}
}
void afisare ()
{
FILE *f;
f=fopen("factoriale.out","w");
fprintf(f,"%ld",q);
fclose(f);
}
int main ()
{
citire ();
solve ();
afisare ();
return 0;
}