华为OD机考--TVL解码--GPU算力--猴子爬台阶--两个数组前K对最小和--勾股数C++实现

勾股数 题目0001

题目描述:

如果三个正整数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
    

源码



//
// Created by HANWENKE on 2022/8/27.
//

#include <iostream>
#include <vector>
#include <algorithm>
using  namespace  std;
bool prime(const int &x,const int &y){
   
    if(x==1||y==1){
   
        return false;
    }
    int mmin=min(x,y);
    for(int i=2;i<=mmin;i++){
   
        if(x%i==0&&y%i==0){
   
            return false;
        }
    }
    return true;
}
int main(){
   
    int n,m;
    cin>>n>>m;
    vector<int>temp;//记录临时元素
    vector<vector<int>>res;//记录最终结果
    bool flag= true;
    //三个元素互质--必定不能够相等
    for(int a=n;a<m;a++){
   
        for(int b=a+1;b<m;b++){
   
            for(int c=b+1;c<m;c++){
   
                if(prime(a,b)&& prime(c,b)&& prime(a,c)){
   
                    if(a*a+b*b==c*c){
   
                        temp={
   a,b,c};
                        flag= false;
                  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HANWEN KE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值