完全平方数

若一个整数能表示成某个整数平方的样式,则称这个数为完全平方数。

性质

  1. 完全平方数的个位只能是0,1,4,5,6,9,且以0,1,4,9,6,5,6,9,4,1为一个循环。
  2. 任意一个偶数的平方都能被4整除,任意一个奇数的平方被4(或8)除余1
  3. 除1外,一个数是完全平方数的充要条件为,分解质因数后,各个质因数的指数都为偶数。
  4. 一个数是完全平方数的充要条件为,因数的总个数为奇数。
  5. 若质数\(p\)整除完全平方数\(a\),则\(p^2|a\)
  6. 如果\(a,b\)是完全平方数,且\(a=b\times c\),那么\(c\)也是完全平方数。
  7. 数列1,3,5,7...的前缀和是完全平方数
  8. 每个正整数均可表示成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;
}
posted @ 2023-08-08 17:39  wuyoudexian  阅读(302)  评论(0)    收藏  举报