Shlomi Fish avatar Shlomi Fish committed 84c82f8

Bug fix.

Comments (0)

Files changed (1)

project-euler/152/euler-152.pl

         }
 
         my @new_factors = grep { $_ > 2 } uniq(grep { !exists($factors_lookup{$_})} @{ factorize($new_sum->denominator()) });
+        my $new_to_check = [@$to_check[$first_idx+1..$#$to_check]];
 
-        my $new_to_check = [@$to_check[$first_idx+1..$#$to_check]];
+        if (! @new_factors)
+        {
+            recurse(
+                $new_to_check,
+                [@$so_far, $first],
+                $new_sum,
+            );
+            next FIRST_LOOP;
+        }
+
         my @new_factors_contains = (map {
             my $new_factor = $_;
             [
         my $iter_factors_recurse = sub {
             my ($masks) = @_;
             my $idx = @$masks;
+
             if ($idx == @new_factors)
             {
                 my @factors = sort {$a <=> $b } uniq (map {
                 );
                 return;
             }
+
             foreach my $new_mask (1 .. ((1 << @{$new_factors_contains[$idx]})-1))
             {
                 __SUB__->([@$masks, $new_mask]);
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.