Pagini recente » Cod sursa (job #1588623) | Cod sursa (job #2584699) | Cod sursa (job #3235213) | Cod sursa (job #1940323) | Cod sursa (job #322310)
Cod sursa(job #322310)
#include <stdio.h>
using namespace std;
FILE *f,*s;
int n,k,i,j,q,x,nr,v[100],rez[10000];
void inmultire(int x[10000], int y)
{
unsigned long T=0;
for(i=1;i<=x[0];i++)
{
x[i]=x[i]*y+T;
T=x[i]/10;
x[i]=x[i]%10;
}
while (T)
{
x[0]++;
x[x[0]]=T%10;
T/=10;
}
}
int main()
{
f=fopen("factoriale.in","r");
s=fopen("factoriale.out","w");
fscanf(f,"%d %d",&n,&k);
for(i=1;i<=n;i++)
{
fscanf(f,"%d",&nr);
for(q=1;q<=nr;q++)
{
x=q;
while(x>1)
{
if(x%2==0)
{
v[2]++;
x/=2;
}
else
break;
}
j=3;
while(x>1)
{
if(x%j==0)
{
v[j]++;
x/=j;
}
else
j+=2;
}
}
}
rez[0]=1;
rez[1]=1;
for(j=1;j<=100;j++)
{
x=0;
if(v[j]%k!=0)
{
x=k-v[j]%k;
}
if(x)
{
for(q=x;q>0;q--)
inmultire(rez,j);
}
}
for(i=rez[0];i>0;i--)
{
fprintf(s,"%d",rez[i]);
}
fclose(s);
return 0;
}