Cod sursa(job #308367)

Utilizator pcinfoCarmen Popescu pcinfo Data 26 aprilie 2009 21:59:59
Problema Factoriale Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <iostream>
#include <vector>

using namespace std;

ifstream f("factoriale.in");
ofstream g("factoriale.out");

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(25,0);
	vector< vector<int> > a(101,vector<int>(25,0)); 
	int i,j,k,n,x;
	long long nr;
	
	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;
	for (i=0;i<25;i++)
		if (v[i]%k!=0)
		{
			j=k-v[i]%k;
			while (j>0)
			{
				nr=nr*p[i];
				j--;
			}
		}
	
	g<<nr;
	g.close();
	return 0;
}