完全平方数的性质
作者:野牛程序员: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
- 上一篇:c++完全平方数判断
- 下一篇:C#实现的二分查找算法