project-euler / project-euler / 152 / euler-152.pl

Diff from to

project-euler/152/euler-152.pl

 {
     my ($to_check, $so_far, $sum) = @_;
 
-    print "Checking: Start=@$to_check ; $sum+[@$so_far]\n";
+    # print "Checking: Start=@$to_check ; $sum+[@$so_far]\n";
 
     if ($sum == $target)
     {
             return;
         }
 
-        my @new_factors = grep { $_ > 2 } uniq(grep { !exists($factors_lookup{$_})} @{ factorize($new_sum->denominator()) });
+        my @new_factors = grep { $_ > 2 } uniq(@{ factorize($new_sum->denominator()) });
         my $new_to_check = [@$to_check[$first_idx+1..$#$to_check]];
 
         if (! @new_factors)
                 }
 
                 recurse([@$new_to_check[@factors_not_contains]],
-                    [@$so_far, @$new_to_check[@factors]],
+                    [sort { $a <=> $b} @$so_far, $first, @$new_to_check[@factors]],
                     $new_new_sum->bnorm(),
                 );
                 return;
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.