声网09-15,求1-n的最大公约数

今天声网25个选择+2编程题,题目全是英文,这道题是第二题。

题目描述大致是输入T组数据,每一组是一个数字n,输出每一个数n其从1到n的最大公约数gcd最大值,举个例子,求3的gcd最大值,也就是求gcd(1,2),gcd(1,3),gcd(2,3)的最大值

输入形式:
2
3
5
输出形式:
1
2


思路:
  首先想到的是暴力做法,定义一个求最大公约数的函数,然后针对每一个数用双指针两层遍历循环求gcd,然后保存其最大值,但是提交不通过显示超时(当时数据规模记不得了,应该是10^6,双层循环肯定要超),代码如下:

#include<bits/stdc++.h>
using namespace std;int gcd(int a,int b){int t;while(b>0){t = a%b;a = b;b = t;}return a;
}
int main(){int T;cin>>T;vector<int> res;for(int i = 0;i<T;i++){int x,Max=-1;cin>>x;for(int j = 1;j<x;j++){for(int k = j+1;k<=x;k++){int res = gcd(j,k);Max = Max>res?Max:res;}}res.push_back(Max);}for_each(res.begin(),res.end(),[](int n){cout<<n<<endl;});return 0;
}

  后来就想着怎么优化,怎么都想不出来暴力做法如何去进行优化,后来换个思路去想。
  想到我们完全可以不用求最大公约数的函数,我们可以对所有可能的最大公约数进行遍历除,根据除出来的答案是否大于1去求解。因为n凡是能被2整除且结果大于1,那么他的公约数最小就是2,我们可以从2~n一直遍历求解,这样就能求出最大公约数了。
  比如求5,因为5/1=5,5/2=2,5/3=1,5/4=1,5/5=1,那么此时除数2所对应的答案是最大值,所以2就是我们所求。

#include<bits/stdc++.h>
using namespace std;int main(){int T;cin>>T;vector<int> res;for(int i = 0;i<T;i++){int x,Max=-1;cin>>x;for(int j = 1;j<=x;j++){if(x/j>1) Max = j;else break;}res.push_back(Max);}for_each(res.begin(),res.end(),[](int n){cout<<n<<endl;});return 0;
}

拓展:
求最大公约数和最小公倍数的递归形式

//最大公约数
int gcd(int x,int y){return y?gcd(y,x%y):x;
}//最小公倍数
int gbs(int x,int y){return x/gcd(x,y)*y;//用到gcd
}

声网09-15,求1-n的最大公约数gcd相关推荐

  1. C语言求二个数的最大公约数gcd和最小公倍数lcm(附完整源码)

    求二个数的最大公约数和最小公倍数 实现以下接口 实现卡最大公约数和最小公倍数完整源码(定义,实现,main函数测试) 实现以下接口 int gcd(int a, int b);//求最大公约数 int ...

  2. 求N个数的最大公约数和最小公倍数以及Hankson逆问题(python)

    求N个数的最大公约数和最小公倍数以及Hankson"逆问题"(python) 一.题目要求 1.基本要求: 求N个数的最大公约数和最小公倍数.用C或C++或java或python语 ...

  3. 声网:疫情期间日均通话分钟数较日常增长近一倍 达15.6亿分钟

    昨日,实时音视频云PaaS服务商声网对外披露,疫情期间,声网日均通话分钟数较日常增长近一倍,达15.6亿分钟(按流计时为62.4亿分钟). 声网Agora客户成功总监郭磊指出,疫情发生后,各种生活场景 ...

  4. 声网 Agora Share:从天到秒级效率提升,一切都为服务好 15 万+应用

    如今,实时音视频互动已成为生活中无处不在的场景,特别是疫情带来的"生活场景线上化",使亿万用户涌到线上,为线上应用带来了巨大流量.当实时音视频变成主流互动方式, 这项服务不仅仅是满 ...

  5. 基于 Web SDK 实现视频通话场景 | 声网 SDK 教程

    声网视频 SDK 被广泛应用于多种实时互动场景中,例如视频会议.视频通话.音视频社交.在线教育等.为了让刚刚接触声网 SDK 的开发者,可以更顺畅地实现基础的视频通话功能,我们基于声网 Web SDK ...

  6. 声网高纯:领域和方向要聚焦,用最专业的方法做最专业的事丨人物专访

    前言 本期「声网开发者 x 人物专访」的受访者,是声网高级架构师 @高纯. 高纯是 W3C 组织的 AC REP(Advisory Committee Representative),还是一名管乐爱好 ...

  7. 声网Agora发布教育信息化解决方案 助力教育公平提效

    4月23日-25日,由中国教育装备行业协会主办的第79届教育装备展在厦门国际会展中心举办.作为赋能教育信息化的实时互动PaaS服务商,声网Agora应邀参会.展会现场,声网展示了基于实时音视频互动能力 ...

  8. 声网 VQA:将实时互动中未知的视频画质用户主观体验变可知

    在实时互动场景中,视频画质是影响观众体验的关键指标,但如何实时评价视频的画质一直是个行业难题,需要将未知的视频画质用户主观体验变成可知. 未知的部分往往是最需要攻克的,声网也一直在持续探索符合实时互动 ...

  9. 声网 X Watch Party 如何在线上一起欢快的边看电影边吐槽?

    实时互联网像触角一样,通过情景的共享延伸开来,链接着我们彼此的线下.线上生活,形成一张不可分割的网络. 在社交直播.在线教育.视频会议等实时互动典型应用场景进一步成熟,成为大众生活不可或缺一部分的同时 ...

最新文章

  1. 疯了疯了!面试官问一个 TCP 连接可以发多少个 HTTP 请求?
  2. 修改Kali Linux终端历史记录大小
  3. 通用的websocket模板代码
  4. 试设计递归算法dfs traverse_BFS 算法框架套路详解
  5. SAP License:市场需要双重SAP顾问
  6. Java静态代理类的特点和示例
  7. mybatis mapper配置 bigint_Mybatis-plus 入门
  8. 在线作图|2分钟做Lefse分析
  9. 携创教育:自考英语二相当于什么水平?可以不考吗?
  10. 亚马逊注册成功,需要的进一步的设置一:税务信息设置
  11. pytest多文件执行顺序控制
  12. 《推荐系统实战》读书笔记——在隐式反馈系统中如何给商品打分
  13. 国企招聘计算机专业的技能要求,为何很多国企招聘时,要求“重点大学”学历,3点原因学生要明白...
  14. Android Hybrid开发实战之图片的交互
  15. 关于matlab提示“警告: 矩阵为奇异工作精度” 的问题
  16. 微信小程序--云开发学习
  17. 资本退潮后,CEEC国际经贸链带你穿越币圈熊市!
  18. 无锡设计培训——做室内设计师的几点建议
  19. appuploader 入门使用
  20. php网上书城|基于PHP实现网上书店商城藉项目

热门文章

  1. 大赚近900亿美元 巴菲特最新重仓股曝光
  2. 计算机二级access分数分布_全国计算机等级考试2017年上半年二级ACCESS数据库成绩查询...
  3. 对DB,DBMS的理解
  4. 数字电路 电平转换总结
  5. 【测绘程序设计】——附合导线近似平差
  6. 用“USB2.0 To SATA IDE CABLE”可以将很多电脑的硬件设备通过USB口连接到电脑上。
  7. OpenCV图像模糊:高斯滤波、双边滤波
  8. 凡客和PPG都是半斤八两
  9. 自监督学习(十)Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles
  10. 泰凌微TLSR825X开发八 OTA升级