题意:寻找1 ~ N中能表示成 M K M^K MK,其中M和K都是正整数并且K>1的这样的数的个数。
思路: N很大,枚举N是不可能了。但它既然表示成 M K M^K MK,我们就枚举K就好了。因为除了1,M最小也就取到2,而2的64次方就已经超过N的范围了。所以K最大就取到64。至于具体怎么枚举,我们可以让K从2循环到64,当K=2时,满足情况的M有1,2,… , N \sqrt{N} N,一共就这 N \sqrt{N} N个,因为再大的话乘方之后就大于N了。当K=3时,满足情况的M有1,2,……, N 3 \sqrt[3]{N} 3N,一共有 N 3 \sqrt[3]{N} 3N个。同理,K等于4,5,… ,64时,满足情况的M分别就有 N 4 , N 5 , … , N 64 \sqrt[4]{N},\sqrt[5]{N},… ,\sqrt[64]{N}