Cod sursa(job #230129)

Utilizator BiterBiter Marian Biter Data 13 decembrie 2008 02:11:45
Problema Factoriale Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>


unsigned long int fact(unsigned long int n)
{
	unsigned long int i;unsigned long int rez=1;
	for (i=1;i<=n;i++)
	{
		rez=rez*i;
	}
	return(rez);
}

unsigned long int putere(unsigned long int a,unsigned long int b)
{
	unsigned long int i;unsigned long int rez=a;
	for (i=2;i<=b;i++)
	{
		rez=rez*a;
	}
	return rez;

}

unsigned long int patrat(unsigned long int m,unsigned long int x)
{
	unsigned long int i;
	for (i=2;i<=100000;i++)
	{
		if (putere(i,m)==x) return 1;
	}
	return 0;
}




int main()
{
	FILE *in=fopen("factoriale.in","r"),
	     *out=fopen("factoriale.out","w");

    unsigned long int v[100],n,put,i;
	unsigned long int prod=1;
	fscanf(in,"%d",&n);
	fscanf(in,"%d",&put);
	for (i=1;i<=n;i++)
	{
		fscanf(in,"%d",&v[i]);
	}
	for (i=1;i<=n;i++)
	{
		prod=prod*fact(v[i]);
	}
	for (i=1;i<=1000;i++)
	{
		if (patrat(put,i*prod)==1)
		{
			fprintf(out,"%d",i);
			return 0;
			
		}
	}
    fprintf(out,"%d",0);
	return 0;

}