fork download
  1. #!/usr/bin/perl
  2. use 5.016;
  3. use warnings;
  4.  
  5. sub f {
  6. my ($n) = @_;
  7. my %memo;
  8. my @cube;
  9.  
  10. my $i = 1;
  11. while(1){
  12. $cube[$i] = $i ** 3;
  13. foreach my $j (1 .. $i - 1){
  14. my $t = $cube[$i] + $cube[$j];
  15. if (exists $memo{$t}){
  16. --$n or return ($i, $j, @{$memo{$t}}, $t);
  17. }
  18. $memo{$t} = [$i, $j];
  19. }
  20. $i++;
  21. }
  22. }
  23.  
  24. printf("%d^3 + %d^3 = %d^3 + %d^3 = %d\n", f(21));
  25. printf("%d^3 + %d^3 = %d^3 + %d^3 = %d\n", f(22));
  26.  
Success #stdin #stdout 0.01s 6396KB
stdin
Standard input is empty
stdout
67^3 + 30^3 = 58^3 + 51^3 = 327763
68^3 + 4^3 = 66^3 + 30^3 = 314496