Cod sursa(job #230127)

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


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

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

}

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




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

    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<=100;i++)
	{
		if (patrat(put,i*prod)==1)
		{
			fprintf(out,"%d",i);
			break;
		}
	}
    return 0;

}