编程输出满足m^2+n^2=1989的所有正整数。
时间: 2024-10-14 20:15:07 浏览: 51
为了找到所有满足 m^2 + n^2 = 1989 的正整数对 (m, n),我们可以先分析这个方程式,注意到1989是一个奇数,因为它是3的幂次(3^4 = 81),而任何两个偶数平方之和会是偶数。因此,m 和 n 中必定有一个是奇数,另一个是偶数。
我们可以从最小的正整数开始枚举,假设m是最小的那个,并尝试找出对应的n值。由于m是奇数,我们先从m=1开始,然后计算n = √(1989 - m^2)。如果结果是整数并且n也是正整数,就找到了一对解。我们将这个过程持续到找到所有的解为止。
以下是一个简单的Python代码示例:
```python
import math
def find_solutions(m_max):
solutions = []
for m in range(1, m_max+1, 2): # 只考虑奇数
n = math.sqrt(1989 - m**2)
if int(n)**2 == 1989 - m**2 and int(n) > 0: # 检查n是否是正整数
solutions.append((m, int(n)))
return solutions
solutions = find_solutions(int(math.sqrt(1989))) # 因为m不会超过sqrt(1989)
print(solutions)
阅读全文