Perfect powers in more than one way? Challenge
Your task is to write a program or function which, given a positive integer \$N\$, finds all positive integers less than or equal to \$N\$ that can be expressed as a perfect power in more than one way.
Definition
A perfect power is defined as a number \$i\$ found by \$m^k\$, where:

\$m\$ and \$i\$ are positive integers
\$m \ne k\$

Test Cases

input -> output
1000 ->  16, 64, 81, 256, 512, 625, 729
56 -> 16
999 -> 16, 64, 81, 256, 512, 625, 729
81 -> 16, 64, 81
1500 -> 16, 64, 81, 256, 512, 625, 729, 1024, 1296

Please provided a readable, commented version as well.
Mathematica: 103 chars    

Spaces can be removed

Select[Flatten@
       Table[
        Solve[Log@#/Log@b == k, k, Integers] /. k -&gt; #, {b, 2, #}] &amp; /@ Range@#, 
Length@# &gt; 2 &amp;][[All, 1, 1]] &amp;  


Usage:  

%[81]
{16, 64, 81}