Pagini recente » Cod sursa (job #578561) | Cod sursa (job #1590521) | Cod sursa (job #1941500) | Cod sursa (job #2641647) | Cod sursa (job #308394)
Cod sursa(job #308394)
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
ifstream f("factoriale.in");
ofstream g("factoriale.out");
void inmult(int A[], int B)
{
int i, t = 0;
for (i = 1; i <= A[0] || t; i++, t /= 10)
A[i] = (t += A[i] * B) % 10;
A[0] = i - 1;
}
int main()
{
int p[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};
vector<int> v(26,0);
vector< vector<int> > a(101,vector<int>(26,0));
int i,j,k,n,x;
int nr[500];
for (i=0;i<500;i++)
nr[i]=0;
a[2][0]=1;
a[3][0]=1; a[3][1]=1;
for (i=4;i<=100;i++)
{
a[i]=a[i-1];
k=i;
for (j=0;j<25 && k>1;j++)
while (k%p[j]==0)
{
a[i][j]++;
k=k/p[j];
}
}
f>>n>>k;
for (i=1;i<=n;i++)
{
f>>x;
for (j=0;j<25;j++)
v[j]+=a[x][j];
}
nr[1]=1; nr[0]=1;
for (i=0;i<25;i++)
if (v[i]%k!=0)
{
j=k-v[i]%k;
while (j>0)
{
inmult(nr,p[i]);
j--;
}
}
for(i=nr[0];i>=1;i--)
g<<nr[i];
g.close();
return 0;
}