Aureliano Coelho Proenca Guedes
and 1 contributors

# NAME

Math::Palindrome - Tool to manipulate palindromes numbers.

# SYNOPSIS

``````  use Math::Palindrome qw/is_palindrome
next_palindrome
previous_palindrome
increasing_sequence
decreasing_sequence
palindrome_after
palindrome_before/;

my \$n = 42; #We sujest never use '05', just '5'

is_palindrome(\$n) ? print "TRUE" :print "FALSE"; # false!

print next_palindrome(\$n); # 44

print previous_palindrome(\$n); # 33

#to increasing_sequence and decreasing_sequence insert
# the size of sequence
my @sequence_01 = increasing_sequence(5, \$n); # 44 55 66 77 88
#or
my @sequence_01 = increasing_sequence(5); # 1 2 3 4 5
# default is 0
my @sequence_02 = decreasing_sequence(5, \$n); # 33 22 11 9 8
#or
my @sequence_02 = decreasing_sequence(5); # 99 88 77 66 55
#default is 100

my \$last = palindrome_after(5, \$n); # 88
# is the same \$last = increasing_sequence(5, \$n);
# this is valid too
my \$last = palindrome_after(5); # 5

my \$first = palindrome_before(5, \$n); # 8
# is the same \$first = decreasing_sequence(5, \$n);
# this is valid too
my \$first = palindrome_before(5); # 55``````

# DESCRIPTION

This module is a alternative agains Math::NumSeq::Palindromes. Can use this to find and confirm palindrome numbers. In my tests it's work correctly with small and large numbers. The most largest numbers was 9,99999 * 10^19. But, I think that its involved a memory capacity. In this module, I used a deterministc method, maybe you can think that is a heuristic, but not. I'm ready for fix a report bugs.

## is_palindrome

`````` Usage     : is_palindrome(\$n)
Purpose   : verify if the number is palindrome or not
Returns   : return 1 if true or 0 if false
Comment   : is the same:
(\$n == reverse \$n) ? return 1 : return 0``````

## next_palindrome

`````` Usage     : next_palindrome(\$n);
Purpose   : return the next palindrome number after \$n``````

## previous_palindrome

`````` Usage     : previous_palindrome(\$n);
Purpose   : return the previous palindrome number before \$n``````

## increasing_sequence

`````` Usage     : increasing_sequence(\$size, \$first_value);
Purpose   : return the crescent sequence of palindrome number after \$n
Argument  : \$size is the number of palindromes that you want
: \$first_value is the number where it start to work, default it is 0 and never return the \$first_value
Throws    : Don't return \$first_value even it's palindrome
Comment   : Use with array.``````

## decreasing_sequence

`````` Usage     : decreasing_sequence(\$size, \$first_value);
Purpose   : return the decrescent sequence of palindrome number beforer \$n
Argument  : \$size is the number of palindromes that you want
: \$first_value is the number where it start to work, default it is 100 and never return the \$first_value
Throws    : Don't return \$first_value even it's palindrome
Comment   : Use with array;``````

## palindrome_after

`````` Usage     : palindrome_after(\$size, \$first_value);
Purpose   : return the last number of crescent sequence of palindrome number beforer \$n
Argument  : \$size is the number of palindromes that you want
: \$first_value is the number where it start to work, default it is 100 and never return the \$first_value
Throws    : Don't return \$first_value even it's palindrome
Comment   : Is like:
\$n = increasing_sequence(\$s, \$p);

``````

## palindrome_before

`````` Usage     : palindrome_before(\$size, \$first_value);
Purpose   : return the last number of decrescent sequence of palindrome number beforer \$n
Argument  : \$size is the number of palindromes that you want
: \$first_value is the number where it start to work, default it is 0 and never return the \$first_value
Throws    : Don't return \$first_value even it's palindrome
Comment   : Is like:
\$n = decreasing_sequence(\$s, \$p);``````

# AUTHOR

``````    Aureliano C. P. Guedes
CPAN ID: acpguedes
guedes.aureliano@gmail.com``````

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.