Simple maths problem.

an is defined as 1 + (1/n).

Sn is defined as a1 + a2 + ... + an.

So we're gonna calculate S15, and we're gonna use object-oriented programming because I'm me.

```use v5.16;

package Local::App {
use Zydeco;
use List::Util 'sum';

class Calc {
method a ( PositiveInt \$n ) = 1 + (1/\$n);
method S ( PositiveInt \$n ) = sum( map \$self->a(\$_), 1 .. \$n )
+;
}
}

my \$calc = Local::App->new_calc;
say \$calc->S(15);

Or, using rational numbers:

```use v5.16;

package Local::App {
use Zydeco;
use List::Util 'sum';

class Calc {
method r ( \$n ) = 1/\$n;
method a ( PositiveInt \$n ) = 1 + \$self->r(\$n);
method S ( PositiveInt \$n ) = sum( map \$self->a(\$_), 1 .. \$n )
+;

class +Rational {
use Math::BigRat;
method r ( \$n ) = Math::BigRat->new("1/\$n");
}
}
}

my \$calc = Local::App->new_calc_rational;
say \$calc->S(15);

In reply to Solving a maths problem with Perl by tobyink

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

• Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
• Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
• Read Where should I post X? if you're not absolutely sure you're posting in the right place.