﻿功能:大数级别的完全平方数判断(Is Perfect Square)

格式:BgIsPerfectSquare(a)

说明:a为一个正整数或者为一个符号变量的正整数.函数执行完毕返回对数据a是否是完全平方数的判断.

注意:由于大数开方,对数据很大的时候是很慢的,所以采用取模的算法来尽量排除非完全平方数的方法会更快的得到我们想要的结果.本原理就是取模的方法来求解.其中本函数会给出三种判断结果:-1、非完全平方数;0、可能是完全平方数;1、是完全平方数.当返回0时表示其有99%的可能是完全平方数.

例子:

c="93063619837911385871738026294999381688418163144986330072620308276644638991374835380017654531616588822802100401891596602129465686029827155099589615652732550988196556504803967454218586394862417374182228356670708952873086620007760866197797038462464615777802076270008560754029791287009877932558188748903467313036578534447474256204258943129007074824465975459435924974588433128595904220047646286102981335398135397059879982435603351697420788446905437763296012569608506483600459187496982609730230895578006436"

BgIsPerfectSquare(c)//执行本命令后返回如下的语句,其中a有99%的可能是完全平方数
ans =
[0.000000000000000 ]

b="993063619837911385871738026294999381688418163144986330072620308276644638991374835380017654531616588822802100401891596602129465686029827155099589615652732550988196556504803967454218586394862417374182228356670708952873086620007760866197797038462464615777802076270008560754029791287009877932558188748903467313036578534447474256204258943129007074824465975459435924974588433128595904220047646286102981335398135397059879982435603351697420788446905437763296012569608506483600459187496982609730230895578006436"

BgIsPerfectSquare(b)//执行命令后返回对数据b的判断,由下面判断可知,b一定不是完全平方数
ans =
[-1.00000000000000 ]

//By 2012/4/8