pra*_*nay 4 algorithm number-theory
获得这个的一种方法是对于自然数(1,...,n)我们将每个因子分解并查看它们是否具有任何重复的素因子,但是对于大n来说这将花费大量时间.那么有没有更好的方法来获得1,...,n的无方格数?
Arm*_*yan 11
您可以使用Eratosthenes Sieve的修改版本:
拿一个bool阵列1 .. n ;
Precalc小于n的所有正方形; 那是O(sqrt(N));
对于每个方块及其倍数,使bool数组条目为false ...
来自http://mathworld.wolfram.com/Squarefree.html
没有已知的多项式时间算法来识别无平方整数或计算整数的无平方部分.事实上,这个问题可能并不比整数分解的一般问题容易得多(显然,如果一个整数可以被完全考虑,如果它不包含重复因子则是无广义的).这个问题在数论中是一个重要的未解决的问题,因为计算代数数字域的整数环可以简化为计算整数的无平方部分(Lenstra 1992,Pohst and Zassenhaus 1997).