
#include<stdio.h>
#include<math.h>

/* Funkcja oblicza wartosc silni n!  */
double silnia(int n)
{
		  int i;
		  double s=1;

		  for(i=2; i <= n ; i++ ) s = s * i;
		  return s;
}


/* Funkcja oblicza potege x^y (gdzie 'y' jest liczba calkowita) */
float potega(float x,int y)
{
	float p=1;
	int i;
	if(y<0) 	{	x=1/x; y=-y; }

	for(i=1;i<=y;i++) p*=x;
	
   return p;
}
/* Funkcja sprawdza czy dana liczba jest liczba pierwsza.
 * Wartoscia zwaracana jest 1 gdy dana liczba jest liczba pierwsza i
 * 0 w przeciwnym wypadku 	*/
int czy_pierwsza(int n)
{
	int i=2;
	while(i<=n/2)
	{
		if (n%i==0) return 0;
		i++;
	}
	return 1;
}

/* 
 * Funkcja wyznacza miejsca zerowe rownania kwadratowego postaci a*x^2+b*x+c=0.
   Wartoscia zwracana przez funkcje jest liczbe miejsc zerowych (0, 1 lub 2). Jezeli istnieja miejsca zerowe wowczas ich wartosc jest podstawiana do zmiennej wskazanej przez adresy x1 i x2 */
int pierwiastki(float a,float b, float c, float *x1,float *x2)
{
   float delta = b*b-4*a*c; 
   if(delta<0) return 0; 
   if(delta == 0)
   {
      *x1 = -0.5 * b /a ;
      return 1;
   }
   
   *x1=0.5*(-b-sqrt(delta))/a;
   *x2=0.5*(-b+sqrt(delta))/a;

   return 2;
}
