
object Main {
  def main(args: Array[String]): Unit = {
    val sc = new java.util.Scanner(System.in)
    val k = sc.nextInt
    val ra =
      (0 until k).foldLeft(Rational(0, 1))(
        (acc, _) => acc + Rational(1, sc.nextInt)
      )
    sc.close()

    println(ra.denom / ra.numer.toDouble)
  }

  class Rational(n: Int, d: Int) extends Ordered[Rational] {
    require(d != 0)

    private val g = Rational.gcd(n.abs, d.abs)
    val numer: Int = n / g * d.signum
    val denom: Int = d.abs / g

    def this(n: Int) = this(n, 1)

    override def toString = numer + (if (denom == 1) "" else ("/" + denom))

    // default methods
    def +(that: Rational): Rational =
      new Rational(numer * that.denom + that.numer * denom, denom * that.denom)
    def -(that: Rational): Rational = this + (-that)
    def unary_- = new Rational(-numer, denom)
    def abs = new Rational(numer.abs, denom)
    def signum = new Rational(numer.signum)

    def *(that: Rational): Rational =
      new Rational(this.numer * that.numer, this.denom * that.denom)
    def /(that: Rational): Rational = this * that.inverse
    def inverse = new Rational(denom, numer)

    def compare(that: Rational) =
      this.numer * that.denom - that.numer * this.denom
    def equals(that: Rational) =
      this.numer == that.numer && this.denom == that.denom

  }

  object Rational {
    implicit def intToRational(x: Int) = new Rational(x)
    private def gcd(a: Int, b: Int): Int = if (b == 0) a else gcd(b, a % b)

    def apply(numer: Int, denom: Int) = new Rational(numer, denom)
    def apply(numer: Int) = new Rational(numer)
  }
}
