Nu aveti permisiuni pentru a descarca fisierul grader_test15.in
Cod sursa(job #230129)
| Utilizator | 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;
}
