From 1725693fac4322554ed5d17f384f2502ef67bf23 Mon Sep 17 00:00:00 2001 From: Jarkko Hietaniemi Date: Fri, 15 Dec 2000 15:32:22 +0000 Subject: Still buggy findgteprime, fix from Eric Joanis . p4raw-id: //depot/perl@8128 --- lib/Tie/SubstrHash.pm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'lib/Tie') diff --git a/lib/Tie/SubstrHash.pm b/lib/Tie/SubstrHash.pm index 3b92bd1cee..afe5d8dc25 100644 --- a/lib/Tie/SubstrHash.pm +++ b/lib/Tie/SubstrHash.pm @@ -186,19 +186,21 @@ sub ceil { sub findgteprime { # find the smallest prime integer greater than or equal to use integer; +# It may be sufficient (and more efficient, IF IT IS CORRECT) to use +# $max = 1 + int sqrt $num and calculate it once only, but is it correct? + my $num = ceil(shift); return 2 if $num <= 2; $num++ unless $num % 2; - my $max = int sqrt $num; - NUM: for (;; $num += 2) { - for ($i = 3; $i <= $max; $i += 2) { - next NUM unless $num % $i; - } - return $num; + my $max = int sqrt $num; + for ($i = 3; $i <= $max; $i += 2) { + next NUM unless $num % $i; + } + return $num; } } -- cgit v1.2.1