1Math::Factor::XS(3) User Contributed Perl Documentation Math::Factor::XS(3)
2
3
4
6 Math::Factor::XS - Factorize numbers and calculate matching
7 multiplications
8
10 use Math::Factor::XS ':all';
11 # or
12 use Math::Factor::XS qw(factors prime_factors matches);
13
14 $number = 30107;
15
16 @factors = factors($number);
17 @primes = prime_factors($number);
18 @matches = matches($number, \@factors);
19
20 print "$factors[1]\n";
21 print "$number == $matches[0][0] * $matches[0][1]\n";
22
24 "Math::Factor::XS" factorizes numbers by applying trial divisions.
25
27 factors
28 Find all factors (ie. divisors) of a number.
29
30 @factors = factors($number);
31
32 The number is factorized and its factors are returned as a list. For
33 example,
34
35 @factors = factors(30);
36 # @factors = (2, 3, 5, 6, 10, 15);
37
38 prime_factors
39 Find prime factors of a number.
40
41 @factors = prime_factors($number);
42
43 The number is factorized and its prime factors are returned as a list.
44 Multiplying the list together gives $number. For example,
45
46 @primes = prime_factors(90);
47 # @primes = (2, 3, 3, 5);
48
49 count_prime_factors
50 Return the count of prime factors of a number. This is the number of
51 values returned by prime_factors().
52
53 my $count = count_prime_factors($number);
54
55 matches
56 Calculates matching multiplications.
57
58 @matches = matches($number, \@factors, { skip_multiples => [0|1] });
59
60 The factors will be multiplied against each other and all combinations
61 that equal the number itself will be returned as a two-dimensional
62 list. The matches are accessible through the indexes; for example, the
63 first two numbers that matched the number may be accessed by
64 "$matches[0][0]" and "$matches[0][1]", the second pair by
65 "$matches[1][0]" and "$matches[1][1]", and so on.
66
67 The hashref provided at the end is optional. If "skip_multiples" is set
68 to a true value, then matching multiplications that contain
69 multiplicated small factors will be discarded. Example:
70
71 11 * 2737 == 30107 # accepted
72 77 * 391 == 30107 # discarded
73
74 Direct use of $Math::Factor::XS::Skip_multiple does no longer have an
75 effect as it has been superseded by "skip_multiples".
76
78 Functions
79 factors(), matches() and prime_factors() are exportable.
80
81 Tags
82 ":all - *()"
83
85 Steven Schubiger <schubiger@cpan.org>
86
88 This program is free software; you may redistribute it and/or modify it
89 under the same terms as Perl itself.
90
91 See <http://dev.perl.org/licenses/>
92
93
94
95perl v5.38.0 2023-07-20 Math::Factor::XS(3)