【枚举】求勾股数的方法

news/2025/1/29 6:41:02/文章来源:https://www.cnblogs.com/Tshaxz/p/18692280

题目

image
image

样例

输入

1
20

输出

3 4 5
5 12 13
8 15 17

解释,1-20内有多组勾股数,但满足两两互质的只有上述三组。下图是1-20内的全部勾股数组
image

思路:
n的范围在1e4,三重for循环会超时,所以可以枚举a,b,用ab计算c,看c是否满足条件,可以做到\(O(n^2)\)的时间复杂度。
另外:两数互质就是这两个数最大公约数为1

C++代码

#include <cmath>
#include <iostream>using namespace std;int gcd(int a, int b)
{return b ? gcd(b, a % b) : a;
}int main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int n, m;cin >> n >> m;int cnt = 0;for (int a = n; a <= m; a++){for (int b = n + 1; b <= m; b++){int c = sqrt(a * a + b * b);if (c * c != a * a + b * b) continue;if (a >= b || a >= c || b >= c) continue;if (c > m || c < n) continue;if (gcd(a, b) != 1 || gcd(a, c) != 1 || gcd(b, c) != 1) continue;cout << a << ' ' << b << ' ' << c << '\n';cnt++;}}if (cnt == 0) puts("NA");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/876138.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ACM寒假集训第二次专题任务

ACM寒假集训第二次专题任务 一、二分查找 题目:解题思路: 输入数据后把每一个x单独拎出来,通过二分查找检验是否存在于被测数组中。 AC代码: #include<iostream> using namespace std; int main() {int n,a[100000]={0},q,x[100000];cin>>n;for(int i=0;i<n…

基于慧净电子HJ-5G开发板学习记录(1)——PIC16F877A开发流水灯

(1)流水灯介绍 下图为慧净电子HJ-5G开发板流水灯部分的电路,其中需要先将JP1跳线帽接上进行短接操作,这样8个流水灯呈现共地状态。此时如果想要实现流水灯操作,只需要轮流将A、B、C、D、E、F、G、H这8个引脚的1个赋值为高电平,其余引脚赋值为低电平即可。而其中,如下图所…

基于慧净电子HJ-5G开发板学习记录——PIC16F877A开发流水灯

(1)流水灯介绍 下图为慧净电子HJ-5G开发板流水灯部分的电路,其中需要先将JP1跳线帽接上进行短接操作,这样8个流水灯呈现共地状态。此时如果想要实现流水灯操作,只需要轮流将A、B、C、D、E、F、G、H这8个引脚的1个赋值为高电平,其余引脚赋值为低电平即可。而其中,如下图所…

深入理解Mybatis分库分表执行原理

探究分库分表场景下Mybatis是如何将mapper.xml中sql的逻辑表,转换成实际执行时的物理表。前言 工作多年,分库分表的场景也见到不少了,但是我仍然对其原理一知半解。趁着放假前时间比较富裕,我想要解答三个问题:为什么mybatis的mapper.xml文件里的sql不需要拼接表名中的分表…

dell r730xd安装操作系统时遇到的常见问题。

出现这个问题时,需要明确你的系统是已经安装完成并且没有问题的,那么就开机时按F11进入选择引导程序,然后选择指定硬盘的系统进行启动接口。 其他待补充。。。。复制请注明出处,在世界中挣扎的灰太狼

三. Redis 基本指令(Redis 快速入门-03)

三. Redis 基本指令(Redis 快速入门-03) @目录三. Redis 基本指令(Redis 快速入门-03)1. Redis 基础操作:2. 对 key(键)操作:3. 对 DB(数据库)操作4. 最后: Reids 指定大全(指令文档): https://www.redis.net.cn/order/Redis 命令十分丰富,包括的命令组有 Cluster、Conne…

在Lazarus下的Free Pascal编程教程——应用程序配置数据的管理与使用

0.前言 我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”和“…

算法学习笔记:扫描线

前言 之前没什么理解,一做就废,最近集训讲了这个,感觉认识深刻了很多,遂写笔记。 这里讲的扫描线,更精确来说指的是离线二维数点,即用扫描线维护一维,DS 维护另一维。 概念 我们把二维数点放到平面上来,那么一个询问或限制就对应平面上的一个矩形,定义这个矩形的 \(\t…

干掉visio,这个画图神器真的绝了!!!

前言 看过我以往文章的小伙伴可能会发现,我的大部分文章都有很多配图。我的文章风格是图文相结合,更便于大家理解。 最近有很多小伙伴发私信问我:文章中的图是用什么工具画的。他们觉得我画的图风格挺小清新的,能够让人眼前一亮。 先上几张图让大家看看效果:说实话,问我的…