NAME
Project::Euler::Lib::MultipleCheck - Determine if an integer is divisible by an array of numbers
VERSION
Version v0.1.1
SYNOPSIS
Module that is used to determine if a number is a multiple of any (or optionally all) numbers in an array
use Project::Euler::Lib::MultipleCheck;
my $multi_check = Project::Euler::Lib::MultipleCheck->new(
multi_nums => [2, 3, 5],
check_all => 0, # Default
);
$is_divisible = $multi_check->check(15);
DESCRIPTION
It is often useful to determine if a number is divisible by a set of numbers. A basic example is to determine if an integer is even by testing it against the array [2]
. A boolean is also used to determining if the number should be divisible by all of the integers in the array or if any will suffice.
The array of integers is always sorted to maximize efficiency (lower numbers have a better chance of matching over higher ones)
VARIABLES
The numbers to test against
multi_nums ( ArrayRef[PosInts] )
The check number must be divisible by all numbers in the array
check_all ( Bool )
FUNCTIONS
check
Function that returns a Boolean if the given number passes the checks
my $check = Project::Euler::Lib::MultipleCheck->new(
multi_nums => [3, 5],
check_all => 0,
);
OK $multi_check->check(9);
NOT OK $multi_check->check(11);
$multi_check->check_all(1);
OK $multi_check->check(15);
NOT OK $multi_check->check(10);
DIES $multi_check->multi_nums([0, 1]); # Multi_nums must all be positive
DIES $multi_check->multi_nums(2, 9); # Multi nums must be an array ref
DIES $multi_check->check('two'); # Can't check a string!
AUTHOR
Adam Lesperance, <lespea at cpan.org>
BUGS
Please report any bugs or feature requests to bug-project-euler at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Project-Euler. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Project::Euler::Lib::MultipleCheck
COPYRIGHT & LICENSE
Copyright 2009 Adam Lesperance.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.