完全平方数的性质
作者:野牛程序员:2024-04-12 16:57:18数论阅读 3615
完全平方数的性质
如果一个正整数 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#实现的二分查找算法
