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);

THANKS Bruno Buss and all community of rio.pm.org

AUTHOR

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

COPYRIGHT

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.

SEE ALSO

perl(1).