/*
   zeta.c
   ------

   Este programa estima a soma

   zeta(s) = 1 + 1/2^s + 1/3^s + 1/4^s + ...

   somando todos os termos maiores epsilon.

   Sabe-se que 

   zeta(2) = pi^2/6
   zeta(4) = pi^4/90
   zeta(6) = pi^6/945
   zeta(8) = pi^8/9450

   Em geral, 

   zeta(r) = (1/2)|B_r|(2pi)^r/r!

   se r 'e par, onde os B_r sao certos numeros racionais
   conhecidos como numeros de Bernoulli. 

 */

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

int main()
{
  int s, k, n;
  double epsilon, t, z = 0;

  printf("Forneca s: ");
  scanf("%d", &s);
  printf("Forneca epsilon: ");
  scanf("%lf", &epsilon);

  t = n = 1;

  while (t > epsilon) {
    z += t;
    n++;
    t = 1;
    for (k = 0; k < s; k++)
      t /= (double) n;
  }

  printf("zeta(s) = %.15g\n", z);
  printf("1/zeta(s) = %.15g\n", 1 / z);
  return 0;
}
