Cod sursa(job #468789)

Utilizator mihai995mihai995 mihai995 Data 5 iulie 2010 00:44:57
Problema Factoriale Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
using namespace std;

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

const int 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 v[1<<5],r[1<<15],n,k;

int putere(int n,int x)
{
	int w,r=0;
	for (w=x;w<=n;w*=x)
		r+=n/w;
	return r;
}

void prod(int v[],int x)
{
	int i,t=0;
	for (i=1;i<=v[0] || t;i++,t/=10)
		v[i]=(t+=v[i]*x)%10;
	v[0]=i-1;
}

int main()
{
	int i,j,x;
	in>>n>>k;
	for (i=1;i<=n;i++)
	{
		in>>x;
		for (j=1;j<26;j++)
			v[j]+=putere(x,prim[j]);
	}
	r[0]=r[1]=1;
	for (i=1;i<=25;i++)
		while (v[i]%k)
		{
			v[i]++;
			prod(r,prim[i]);
		}
	for (i=r[0];i;i--)
		out<<r[i];
	out<<"\n";
	return 0;
}