题目来源: SGU
基准时间限制: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

从数组中最大的数开始试验,看其倍数 是否满足出现了两次的要求,出现了两次,还是从最大的数开始递减的话,说明这个数一定是这些数中的最大的最大公约数。

代码:

#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#pragma warning(disable:4996)
using namespace std; int n;
int val[50005];
int cnt[1000005]; int main()
{
//freopen("i.txt", "r", stdin);
//freopen("o.txt", "w", stdout); int i, j, maxn, sum;
scanf("%d", &n); maxn = 0;
for (i = 0; i < n; i++)
{
scanf("%d", val + i);
cnt[val[i]]++;
maxn = max(maxn, val[i]);
}
for (j = maxn; j >= 1; j--)
{
sum = 0;
for (i = j; i <= maxn; i = i + j)
{
sum += cnt[i];
if (sum >= 2)
{
break;
}
}
if (sum >= 2)
{
cout << j << endl;
break;
}
} //system("pause");
return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

51nod 1179:最大的最大公约数的更多相关文章

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

    1179 最大的最大公约数 题目来源: SGU 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 给出N个正整数,找出N个数两两之间最大公约数的最大值.例如:N = ...

  2. 51NOD 1179 最大的最大公约数 筛法

    1179 最大的最大公约数 题目连接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1179 Description ...

  3. 51nod 1179 最大的最大公约数 一种筛选的方法

    1179 最大的最大公约数 题目来源: SGU 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 给出N个正整数,找出N个数两两之间最大公约数的最大值 ...

  4. 51Nod 1179 最大的最大公约数(暴力大法好)

    #include <iostream> #include <cstdio> #include <cstring> using namespace std; ; in ...

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

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

  6. 51nod - 1179 - 最大的最大公约数 - 枚举

    因为 \(\sum\limits_{i=1}^{n}\lfloor\frac{n}{i}\rfloor=O(nlogn)\) 所以直接暴力就可以了. #include<bits/stdc++.h ...

  7. 51Nod - 1179

    给出N个正整数,找出N个数两两之间最大公约数的最大值.例如:N = 4,4个数为:9 15 25 16,两两之间最大公约数的最大值是15同25的最大公约数5.   Input第1行:一个数N,表示输入 ...

  8. NOIP2018提高组金牌训练营——数论专题

    地址 https://www.51nod.com/live/liveDescription.html#!liveId=23 1187 寻找分数 给出 a,b,c,d, 找一个分数p/q,使得a/b & ...

  9. 51nod-1179-最大的gcd(数学)

    1179 最大的最大公约数  题目来源: SGU 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 给出N个正整数,找出N个数两两之间最大公约数的最大 ...

随机推荐

  1. intelliJ IDEA 全屏键盘手

    从MyEclipse到IntelliJ IDEA --让你脱键盘,全键盘操作 从MyEclipse转战到IntelliJ IDEA的经历 我一个朋友写了一篇"从Eclipse到Android ...

  2. vue中配置sass(包含vue-cli 3)

    目录 vue vue cli 3 老版本的脚手架搭建的项目 版本 安装 不用修改任何配置 vue文件中使用 vue 更新时间: 2018-09-21 vue cli 3 选择 Manually sel ...

  3. Ansible ssh-key密钥认证配置

    对于被管理服务器做免密码登录设置 1.在管理服务器生成ssh-key密钥 #ssh-keygen  //生成秘钥 root@hsz:/etc/ansible# ssh-keygen Generatin ...

  4. python 基础之浅拷贝与深拷贝

    浅拷贝与深拷贝 1.普通赋值 例1: a = 15b = aa = 16print(b)#例2:lst1 = [1,2,3]lst2 = lst1lst1.append(4)print(lst2)#这 ...

  5. AutoITx3.DLL所有函数及说明

    AutoItSetOption    调整各种函数/参数的运作方式. BlockInput    屏蔽/启用鼠标与键盘(输入). CDTray    弹出或关闭光驱. ClipGet    获取剪贴板 ...

  6. HTML元素和测试用例的简要介绍

    HTML和CSS的基本语法就不出教程,线下自己看电子书即可 HTML元素 标签 内容 属性 标签+内容+属性 <html> <head> <title>我的主页&l ...

  7. MySQL实现主从复制功能

    环境说明         centos7.3.MySQL5.7 前言         MySQL安装参考之前的文章https://www.jianshu.com/p/452aa99c7476有讲解. ...

  8. 【剑指Offer面试编程题】题目1519:合并两个排序的链表--九度OJ

    题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. (hint: 请务必使用链表.) 输入: 输入可能包含多个测试样例,输入以EOF结束. 对于每 ...

  9. 为何以及如何学Linux系统?

    在当今的社会中,linux用处实在是太过广泛了.现在用在服务器和嵌入式上的Linux发行版本数不胜数,桌面上linux只占1%的比例,但这不代表linux比windows和mac 做得差,实际上桌面系 ...

  10. VUE 父子组件之间通信传值 props和 $emit

    1.父组件传值给子组件 $props,子组件传值给父组件 $emit 父组件          <div id="app" >               <tr ...