NAME
   Math::Factor::XS - Factorize numbers and calculate matching
   multiplications

SYNOPSIS
    use Math::Factor::XS ':all';
    # or
    use Math::Factor::XS qw(factors matches);

    $number = 30107;

    @factors = factors($number);
    @matches = matches($number, \@factors);

    print "$factors[1]\n";
    print "$number == $matches[0][0] * $matches[0][1]\n";

DESCRIPTION
   `Math::Factor::XS' factorizes numbers by applying trial divisions.

FUNCTIONS
 factors

   Factorizes numbers.

    @factors = factors($number);

   The number will be entirely factorized and its factors will be returned
   as a list.

 matches

   Calculates matching multiplications.

    @matches = matches($number, \@factors, { skip_multiples => [0|1] });

   The factors will be multiplicated against each other and all
   combinations that equal the number itself will be returned as a
   two-dimensional list. The matches are accessible through the indexes;
   for example, the first two numbers that matched the number may be
   accessed by `$matches[0][0]' and `$matches[0][1]', the second pair by
   `$matches[1][0]' and `$matches[1][1]', and so on.

   The hashref provided at the end is optional. If `skip_multiples' is set
   to a true value, then matching multiplications that contain
   multiplicated small factors will be discarded. Example:

    11 * 2737 == 30107 # accepted
    77 * 391  == 30107 # discarded

   Direct use of `$Math::Factor::XS::Skip_multiple' does no longer have an
   effect as it has been superseded by `skip_multiples'.

EXPORT
 Functions

   `factors(), matches()' are exportable.

 Tags

   `:all - *()'

AUTHOR
   Steven Schubiger <[email protected]>

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

   See http://dev.perl.org/licenses/