Pagini recente » Cod sursa (job #196332) | Cod sursa (job #2933128) | Cod sursa (job #2261119) | Cod sursa (job #2295386) | Cod sursa (job #181954)
Cod sursa(job #181954)
#include <stdio.h>
FILE *f,*g;
int prim[30];
int a[100],n,k,x,i,j,temp,p;
long rez;
void genereazaprime(void)
{
char c[120];
int i,j;
for(i=0;i<=100;i++)c[i]=0;
for(i=2;i<=50;i++)
if(c[i]!=1)
for(j=i*2;j<=100;j+=i)
c[j]=1;
for(i=2;i<=100;i++)
if(c[i]==0)
prim[++prim[0]]=i;
}
int main()
{
f=fopen("factoriale.in","r");
g=fopen("factoriale.out","w");
genereazaprime();
fscanf(f,"%d %d\n",&n,&k);
for(i=1;i<=n;i++)
{
fscanf(f,"%d",&x);
for(p=2;p<=x;p++)
{
temp=p;
for(j=1;(j<=prim[0])&&(temp!=1);j++)
if(temp%prim[j]==0)
while(temp%prim[j]==0)
{
a[prim[j]]++;
temp/=prim[j];
}
}
}
rez=1;
for(i=2;i<=100;i++)
if(a[i]!=0)
if(a[i]%k!=0)
while(a[i]%k!=0)
{
a[i]++;
rez*=i;
}
fprintf(g,"%ld\n",rez);
fclose(f); fclose(g);
return 0;
}