完全平方数
若一个整数能表示成某个整数平方的样式,则称这个数为完全平方数。
性质
- 完全平方数的个位只能是0,1,4,5,6,9,且以0,1,4,9,6,5,6,9,4,1为一个循环。
- 任意一个偶数的平方都能被4整除,任意一个奇数的平方被4(或8)除余1
- 除1外,一个数是完全平方数的充要条件为,分解质因数后,各个质因数的指数都为偶数。
- 一个数是完全平方数的充要条件为,因数的总个数为奇数。
- 若质数\(p\)整除完全平方数\(a\),则\(p^2|a\)
- 如果\(a,b\)是完全平方数,且\(a=b\times c\),那么\(c\)也是完全平方数。
- 数列1,3,5,7...的前缀和是完全平方数
- 每个正整数均可表示成4个整数的平方和,即对任意\(n>0\),不定方程\(x_1^2+x_2^2+x_3^2+x_4^2=n\)一定有解。
手写sqrt()
当n是完全平方数时,返回它的开方,否则返回-1。
ll sqt(ll n) {
ll lo = 0, hi = 2 * sqrt(n);
while(lo < hi) {
ll mid = lo + hi + 1 >> 1;
if(mid * mid <= n) {
lo = mid;
} else {
hi = mid - 1;
}
}
return lo * lo == n ? lo : -1;
}

浙公网安备 33010602011771号