#!perl -l use strict; use warnings; my $MIN_NUMBER = 4; my $MAX_NUMBER = 30; my $string = q(5973821902497150366459738219024971503664); sub match { index($string, $_[0]) >= 0 ? $_[0] : undef } use Quantum::Superpositions UNARY => ['main::match']; my $squares = any(map {$_ * $_} $MIN_NUMBER..$MAX_NUMBER); my $superhits = match($squares); print for eigenstates($superhits);