若一个整数n能表示成某个整数m的平方的形式,则称这个数为完全平方数。写一个程序判断输入的整数是不是完全平方数。
时间: 2023-05-31 13:18:53 浏览: 101
### 回答1:
可以使用以下的程序来判断输入的整数是否为完全平方数:
```
import math
n = int(input("请输入一个整数:"))
m = int(math.sqrt(n))
if m * m == n:
print(n, "是完全平方数")
else:
print(n, "不是完全平方数")
```
程序中,首先使用 `input()` 函数获取用户输入的整数,然后使用 `math.sqrt()` 函数计算这个整数的平方根,将其转换为整数类型。接着,判断这个整数的平方根的平方是否等于输入的整数,如果相等,则输出“是完全平方数”,否则输出“不是完全平方数”。
### 回答2:
判断一个数是否为完全平方数,可以使用循环逐个尝试每个可能的平方数,直到找到一个平方数等于该整数或者找到一个大于该整数的平方数为止。具体实现可以使用二分查找算法提高效率。
下面是一个用 Python 语言编写的判断完全平方数的程序示例:
```python
def isPerfectSquare(n: int) -> bool:
if n < 0:
return False
left, right = 0, n
while left <= right:
mid = (left + right) // 2
if mid * mid == n:
return True
elif mid * mid < n:
left = mid + 1
else:
right = mid - 1
return False
```
该程序首先判断输入的整数是否为非负数,如果是负数则不是完全平方数,直接返回 False。
然后使用二分查找算法在左右边界不断逼近的过程中,判断中间数的平方是否等于输入的整数。如果等于,则返回 True。如果平方小于输入的整数,则说明在右半部分继续查找。如果平方大于输入的整数,则说明在左半部分继续查找。最终如果左右边界相遇时还没有找到平方等于输入的整数,则返回 False。
使用该函数可以方便地判断任意一个整数是否为完全平方数,例如:
```python
n = int(input("请输入一个整数:"))
if isPerfectSquare(n):
print(n, "是完全平方数")
else:
print(n, "不是完全平方数")
```
输出结果示例:
```
请输入一个整数:16
16 是完全平方数
请输入一个整数:35
35 不是完全平方数
```
### 回答3:
题目要求判断一个整数是否为完全平方数。我们可以知道,如果一个整数n是某个整数m的平方,那么m在sqrt(n)以内。所以,我们可以考虑遍历sqrt(n)内的所有整数m,判断m*m是否等于n,如果有一个m使得m*m等于n,那么n就是完全平方数。
下面是一个使用Python语言实现的代码:
```python
import math
def is_perfect_square(n):
for m in range(int(math.sqrt(n)) + 1):
if m * m == n:
return True
return False
# 测试代码
print(is_perfect_square(16)) # 输出True
print(is_perfect_square(15)) # 输出False
```
在上述代码中,我们定义了一个函数is_perfect_square(n),它接受一个整数n作为输入,并返回一个布尔值,表示n是否为完全平方数。这个函数的实现就是上述算法的具体代码。
我们可以通过测试代码来验证这个函数的正确性,可以看到,对于16,返回的结果是True,对于15,返回的结果是False,这符合我们的预期。