华为OD机试C卷-- 勾股数元组(Java & JS & Python)

博客介绍了如何找出指定范围内所有两两互质的勾股数元组,满足a^2 + b^2 = c^2的关系,并给出Java、Python、JavaScript的算法源码实现。题目要求1 <= N <= 10000,N < M <= 10000,输出需按a、b、c升序排列。
摘要由CSDN通过智能技术生成

获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。
题目描述
如果3个正整数(a,b,c)满足a^2 + b^2 = c^2的关系,则称(a,b,c)为勾股数(著名的勾三股四弦五),

为了探索勾股数的规律,我们定义如果勾股数(a,b,c)之间两两互质(即a与b,a与c,b与c之间均互质,没有公约数),则其为勾股数元组(例如(3,4,5)是勾股数元组,(6,8,10)则不是勾股数元组)。

请求出给定范围[N,M]内,所有的勾股数元组。

输入描述
起始范围N,1 <= N <= 10000
结束范围M,N < M <= 10000

输出描述

  1. a,b,c请保证a < b < c,输出格式:a b c;

  2. 多组勾股数元组请按照a升序,b升序,最后c升序的方式排序输出;

  3. 给定范围中如果找不到勾股数元组时,输出”NA“。

题目解析
本题要求找出指定范围内所有互质的勾股数元组,即满足
𝑎2+𝑏2=𝑐2a 2 +b 2 =c 2
且a、b、c之间两两互质的正整数组合。解题的关键在于理解勾股数的产生规律,特别是最小的几个勾股数元组&#

  • 1
    点赞
  • 200
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值