判断一个整数是否平方数

如果一个数字,是另一个数字的平方,就说这个数是平方数。

如何判断一个数字K,是否平方数呢?

 

方法一:

我们知道:以1为首项,2为公差的等差数列的求和公式为n^2.

所以要判断数K是否平方数,只须:

从该等差数列的左边开始,K不断的减数列的项,直至减不过为止。

此时如果k的值变为0,则k为平方数,并且执行减法的次数即是k的平方根!

 

方法二:

也可以用K不断的去除素数列,从2开始,不断除2,至不能整除,再接着除3,至不能整除,然后接着5、7、11.。。。,一直除到K的值为1! 然后看它刚才整除过的那些素数,如果这些素数可以分成两个完全相同的集合。那么K是平方数。并且分成的集合的所有元素之积就是K的平方根!

 

方法三:

如果K的位数是奇数,比如位数为5,那么K的平方根必然是在100和320之间,先判断220的平方和K的大小,如果小于K,那么再判断220与320的中位数的平方与k的大小,反之判断100和220的中位数的平方与k的大小。如此不断迭代下去,就可以判断K是否平方数。这其实是运用的二分查找的思路,具体实现细节这里不做深究。

 

 

posted on 2009-12-11 20:23  台哥编程课堂  阅读(992)  评论(0编辑  收藏  举报

导航