Pagini recente » Cod sursa (job #2135965) | Cod sursa (job #1292919) | Cod sursa (job #961643) | Cod sursa (job #1475558) | Cod sursa (job #311990)
Cod sursa(job #311990)
#include<fstream>
#include<iostream>
using namespace std;
int main(){
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
int j,i,n,k,x,prim[25]={2 ,3 ,5 ,7 ,11 ,13 ,17 ,19 ,23 ,29 ,31 ,37 ,41 ,43 ,47 ,53 ,59 ,61 ,67 ,71 ,73 ,79 ,83 ,89 ,97};
int fact[101][25];
for (i=0;i<100;i++)
for (j=0;j<25;j++)
fact[i][j]=0;
fin>>n>>k;
for (i=2;i<101;i++){
x=i;
j=-1;
while (x>1){
j++;
if (x%prim[j]==0){
x/=prim[j];
fact[i][j]++;
j=-1;
}
}
for (j=0;j<25;j++)
fact[i][j]+=fact[i-1][j];
}
for (i=0;i<n;i++){
fin>>x;
for (j=0;j<25;j++)
fact[0][j]+=fact[x][j];
}
for (i=0;i<25;i++){
if (fact[0][i]%k!=0)
fact[0][i]=k-fact[0][i]%k;
else
fact[0][i]=0;
}
int nr[500];
for (i=0;i<500;i++)
nr[i]=0;
nr[0]=1;x=n=0;j=1;
for (i=0;i<25;i++){
for (;fact[0][i]>0;fact[0][i]--){
for (n=0;n<j;n++)
nr[n]*=prim[i];
n=-1;
do{
n++;
nr[n]+=x;
x=nr[n]/10;
nr[n]%=10;
if (n>j-1){
j++;
}
}while (x>0);
}
}
for (j--;j>=0;j--)
fout<<nr[j];
fout.close();
}