OD 统一机试 B 卷 勾股数 【新 2023】华为 OD 机试
题目
如果三个正整数A
、B
、C
,A² + B² = C²
则为勾股数,
如果ABC
之间两两互质,即A
与B
,A
与C
,B
与C
均互质没有公约数,则称其为勾股数元组。
请求出给定 n ~ m
范围内所有的勾股数元组。
输入
起始范围
1 < n < 10000
n < m < 10000
输出描述
ABC 保证A < B < C
输出格式A B C
多组勾股数元组,按照A B C
升序的排序方式输出。
若给定范围内,找不到勾股数元组时,输出Na
。
示例一
输入
1
20
输出
3 4 5
5 12 13
8 15 17
示例二
输入
5
10
输出
Na
编码思路
- 输入两个整数 n 和 m,分别表示区间的左端点和右端点。
- 依次枚举所有可能的三元组
(a, b, c)
,其中a, b, c
分别从n
到m
中取值,满足a < b < c
。 - 对于每个三元组,判断它们是否满足三个数两两互质且符合勾股定理,如果满足则输出,并计数器 count 加 1。
- 如果 count 为 0,则说明没有满足条件的三元组,输出 “Na”。
核心知识点
- Python 的输入函数是 input(),可以通过 spl