输入一个100以内的正整数n,输出n以内的勾股数,要求各组勾股数无重复,每行显示6组 输入格式: 输入一个正整数 输出格式: 每行显示6组勾股数,每组里边的三个数之间以英文逗号间隔,每个数占两个位置,每组以4个空格结束
时间: 2024-10-21 21:15:37 浏览: 43
输入一个100以内的正整数 n 后,程序会找出该范围内所有不重复的勾股数组合。勾股数是指满足 a^2 + b^2 = c^2 的三个正整数 a、b 和 c。为了输出格式清晰,我们将按以下规则展示结果:
1. 每行将输出6组勾股数,每组包含a、b和c。
2. 三者之间用英文逗号 (,) 分隔。
3. 每个数占据两个字符的位置,保证数值显示完整。
4. 每组之后有4个空格作为分隔。
例如,如果输入的 n=5,则可能的输出可能是:
```markdown
3, 4, 5
5, 12, 13
7, 24, 25
8, 15, 17
9, 40, 41
```
接下来是一段Python示例代码,用于实现上述功能:
```python
def generate_pythagorean_triplets(n):
def is_valid(a, b, c):
return a * a + b * b == c * c and a <= n and b <= n and c <= n
triplets = []
for a in range(1, int(n**0.5) + 1): # 只需考虑小于等于sqrt(n)
for b in range(a, int(n**0.5) + 1):
c = int((a**2 + b**2)**0.5)
if is_valid(a, b, c):
triplets.append((a, b, c))
for i in range(0, len(triplets), 6):
print(f"{triplets[i][0]:<2}, {triplets[i][1]:<2}, {triplets[i][2]:<2}", end=" ")
if (i+1) % 6 == 0 or i == len(triplets)-1:
print()
# 示例
generate_pythagorean_triplets(100)
```
阅读全文