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/