1179 最大的最大公约数

基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题
给出N个正整数,找出N个数两两之间最大公约数的最大值。例如:N = 4,4个数为:9 15 25 16,两两之间最大公约数的最大值是15同25的最大公约数5。
Input
第1行:一个数N,表示输入正整数的数量。(2 <= N <= 50000)
第2 - N + 1行:每行1个数,对应输入的正整数.(1 <= S[i] <= 1000000)
Output
输出两两之间最大公约数的最大值。
Input示例
4
9
15
25
16
Output示例
5

问题链接:1179 最大的最大公约数

问题分析

按照题意,对于给定的整数两两求其最大公约数是一种暴力,然而时间上不可接受,因为其计算复杂度是O(n*n)。

换一种暴力也许计算复杂度会有所降低,不会随着N的增大而增大。这就是从最大的s[i]<=1000000开始试探,逐步减小找到最大的最大公约数。

上述过程中,主要是看各个数的倍数(包括倍数为1的)是否与之相等,有两个相等的则找到了所求的答案。

程序说明:(略)

题记:两权相害取其轻。

参考链接:(略)

AC的C++程序如下:

#include <iostream>
#include <cstring>
#include <cstdio>using namespace std;const int N = 1000000;
int siflag[N+1];int main()
{int n, i, si, maxsi;memset(siflag, 0, sizeof(siflag));scanf("%d", &n);maxsi = 0;for(i=1; i<=n; i++) {scanf("%d", &si);siflag[si]++;maxsi = max(maxsi, si);}for(i=maxsi; i>=1; i--) {int count = 0;for(int j=i; j<=maxsi; j+=i) {count += siflag[j];if(count >= 2)break;}if(count >= 2)break;}printf("%d\n", i);return 0;
}

51Nod-1179 最大的最大公约数【暴力】相关推荐

  1. 51Nod 1179 最大的最大公约数

                           1179 最大的最大公约数 给出N个正整数,找出N个数两两之间最大公约数的最大值.例如:N = 4,4个数为:9 15 25 16,两两之间最大公约数的最 ...

  2. 51nod 1179 最大的最大公约数 (打表计数法)

    题目: 考虑清楚就简单了,我们把每个数的因子计数. 两个数的公约数就是计数超过2的数,然后找到最大的那个就好了. 计算每个数的素因子,记得sqrt(),不然会超时. 打表计数法时间复杂度O(n*sqr ...

  3. 1179:最小公倍数和最大公约数

    描述 从键盘输入两个正整数,求这两个正整数的最小公倍数和最大公约数,并输出. 输入 输入包括一行. 两个以空格分开的正整数. 输出 两个整数的最小公倍数和最大公约数. 样例输入 6 8 样例输出 24 ...

  4. 51nod 2020 排序相减(暴力解法)

    题目: 代码: #include <bits\stdc++.h> using namespace std;int trim(int x){int a[4];for(int i = 0;i ...

  5. 辗转相除法+更相减损法求最大公约数

    怎么求两个数的最大公约数呢? 简单的想法就是直接暴力枚举,试出最大公约数 #暴力枚举 #暴力枚举 def GCD(numberA,numberB):gcd=1for i in range(2,max( ...

  6. 转载:辗转相除法求最大公约数

    转载出处:土豆洋芋山药蛋 https://blog.csdn.net/qq_33414271/article/details/78700664 怎么求两个数的最大公约数呢? 简单的想法就是直接暴力枚举 ...

  7. 一句话题解(20170801~20170125)

    8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...

  8. C语言分支语句和循环语句及练习

    目录 一.if 语句 1.语句和空语句 2.0为假 非0为真 3.代码块 {} 4.悬空else 5.书写规范 6.判断一个数是否为奇数 7.输出1-100的奇数 二.switch语句 1.switc ...

  9. 大数据:大二上期期末感悟及总结

    学期期末总结 一.期末感悟 1.个人感悟 2.知识积累 3.谦卑心理 4.利用好碎片时间 5.为学历添砖加瓦 6.寒假计划 二.比赛经历及所获荣誉 1.全国高校计算机挑战赛office赛项 2.蓝桥杯 ...

最新文章

  1. python Flask框架如何请求及返回数据——flask详细教程
  2. Solr分页与高亮(使用SolrNet实现)
  3. 汇编语言的程序设计方法(循环结构和分支结构)
  4. 【DVWA(五)】XXS存储型跨站攻击
  5. java web登录action_JavaWeb中登陆功能
  6. 图表可视化seaborn风格和调色盘
  7. oracle报错00838,oracle11g的内存分配不当,导致的错误ORA-01034,ORA-00838,ORA-27101
  8. STemwin替换为MDK下的emwin
  9. sql测验,like 和 = 的区别
  10. html链接打开word文档,一招教你在Word文档中创建超链接打开其他文件
  11. python如何移动图片_python 简单图像处理(3) 平移
  12. Latex中的括号用法总结
  13. 直接将ADB授权写入到手机的方法(手机需要有root权限)
  14. Robin:SEO从业者打造个人品牌的八个建议,白杨SEO个人品牌实战举例
  15. 使用kafka-reassign-partitions.sh重新对topic分区,ReplicationFactor由1变成3
  16. python随机画笑脸_如何用python画笑脸
  17. 使用Spring 定时器 + selenium打卡
  18. 基于SpringBoot开发的商城后台管理系统
  19. 国内TeamViewer正版授权的代理商有哪些?如何查询?
  20. unity LeapMotion 手势旋转,位移,缩放

热门文章

  1. ArcGIS 10.2.2 for Desktop非管理员权限用户连接Oracle12c,崩溃
  2. 关于 redis crackit 安全事件分析
  3. Android ListView常用用法(结合长按、数据库等)
  4. Go各种类型转换及函数的高级用法
  5. PHP开发网站全过程技术知识分析
  6. 用 man 命令查看 ls 命令的使用手册_Python学习第167课--用man和info打开Linux命令说明书的区别...
  7. id 怎么获取jira 评论_【JIRA】如何快速地批量查找各迭代的SprintID
  8. 鬼点灯服务器找不到了怎么办,Minecraft地图被毁或是找不到了怎么办?手把手教你找回它!...
  9. Impala内存优化
  10. mysql对sql的支持并不是太好_MySQL数据库优化总结