#! perl -slw use strict; sub gen{ my( $n, $p ) = @_; return 1 if $p == 0; my @n = gen( $n, $p - 1 ); my $v = $n**$p; return @n, $v, map{ $v + $_ } @n; } our $LIMIT //= 10; our $N //= 5; my %tests; for( 3 .. $N ) { ++$tests{ $_ } for gen( $_, $LIMIT ); } $tests{ $_ } == $N-2 and print for sort{ $a <=> $b } keys %tests; __END__ C:\test>1130506 1 82000