NAME

Math::NumSeq::HypotCount -- how many times as sum of two squares

SYNOPSIS

use Math::NumSeq::HypotCount;
my $seq = Math::NumSeq::HypotCount->new;
my ($i, $value) = $seq->next;

DESCRIPTION

In progress ...

The counts of how many times i occurs as the sum of two squares i=A^2+B^2 for integer A,B.

1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, ...

One or both A,B can be zero, but swapping to B^2+A^2 is not reckoned as a different way. For example i=5 has just one way 1^2+2^2=5. But i=6 has no way to add two squares to make 6.

Allowing A=0 means the perfect squares i=k^2 all have a count of at least one way 0^2+k^2 = k^2, and there may be more ways too.

FUNCTIONS

See "FUNCTIONS" in Math::NumSeq for behaviour common to all sequence classes.

$seq = Math::NumSeq::HypotCount->new ()

Create and return a new sequence object.

$value = $seq->ith($i)

Return the number of ways $i can be expressed as the sum of two squares.

This requires factorizing $i and the current code has a hard limit of 2**32 on $i, in the interests of not going into a near-infinite loop.

$bool = $seq->pred($value)

Return true if $value occurs as a count. All counts 0 up occur so this is simply integer $value >= 0.

SEE ALSO

Math::NumSeq, Math::NumSeq::PythagoreanHypots

HOME PAGE

http://user42.tuxfamily.org/math-numseq/index.html

LICENSE

Copyright 2011, 2012 Kevin Ryde

Math-NumSeq is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

Math-NumSeq is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Math-NumSeq. If not, see <http://www.gnu.org/licenses/>.