当前位置:首页数论 > 正文

完全平方数的性质

作者:野牛程序员:2024-04-12 16:57:18数论阅读 2843
完全平方数的性质

如果一个正整数 a 是某一个整数 b 的平方,那么这个正整数 a 叫做完全平方数。零也可称为完全平方数。 完全平方数的性质如下: 1、平方数的个位数字只能是 0, 1,4,5,6,9 。 2、任何偶数的平方一定能被 4 整除;任何奇数的平方被 4(或 8)除余 1,即被4 除余 2 或 3 的数一定不是完全平方数。 3、完全平方数的个位数字是奇数时,其十位上的数字必为偶数。完全平方数的个位数字是 6 时,其十位数字必为奇数。 4、凡个位数字是 5 但末两位数字不是 25 的自然数不是完全平方数;末尾只有奇数个 0 的自然数不是完全平方数;个位数字是 1,4,9 而十位数字为奇数的自然数不是完全平方数。 5、除 1 外,一个完全平方数分解质因数后,各个质因数的指数都是偶数,如果一个数质分解后, 各个指数都为偶数, 那么它肯定是个平方数。 完全平方数的所有因数的总个数是奇数个。因数个数为奇数的自然数一定是完全平方数。 6、如果 a 、b 是平方数, a=bc ,那么 c 也是完全平方数。 7、两个连续自然数的乘积一定不是平方数,两个连续自然数的平方数之间不再有平方数。 8、如果十位数字是奇数,则它的个位数字一定是6;反之也成立。


下面是根据完全平方数的性质所写的 C++ 函数,用于判断一个数是否是完全平方数:

#include <iostream>
#include <cmath>
using namespace std;

bool isPerfectSquare(int num) {
    // 完全平方数的个位数字只能是 0,1,4,5,6,9
    int lastDigit = num % 10;
    if (lastDigit != 0 && lastDigit != 1 && lastDigit != 4 &&
        lastDigit != 5 && lastDigit != 6 && lastDigit != 9) {
        return false;
    }
    
    // 完全平方数的个位数字是奇数时,其十位上的数字必为偶数
    if (lastDigit % 2 != 0) {
        int secondLastDigit = (num / 10) % 10;
        if (secondLastDigit % 2 != 0) {
            return false;
        }
    }
    
    // 判断奇偶性质
    if (num % 4 == 2 || num % 4 == 3) {
        return false;
    }
    
    // 完全平方数的个位数字是 5 但末两位数字不是 25 的自然数不是完全平方数
    if (lastDigit == 5) {
        int lastTwoDigits = num % 100;
        if (lastTwoDigits != 25) {
            return false;
        }
    }
    
    // 判断是否为完全平方数
    int sqrtNum = sqrt(num);
    return sqrtNum * sqrtNum == num;
}

int main() {
    int num;
    cout << "Enter a number: ";
    cin >> num;
    if (isPerfectSquare(num)) {
        cout << num << " is a perfect square." << endl;
    } else {
        cout << num << " is not a perfect square." << endl;
    }
    return 0;
}

这个程序会根据完全平方数的性质来判断一个数是否是完全平方数。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • 最新推荐

    热门点击