题目来源: 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. 【PAT甲级】1011 World Cup Betting (20 分)

    题意: 给出三组小数,每组三个,分别代表一场比赛下注一块钱胜平负的赔率.输出投注的方案并计算投注两块钱期望收获.(赔率相乘后乘上0.65再减去本金2块钱) AAAAAccepted code: #in ...

  2. 基本使用-ElasticSearch

    基本使用-ElasticSearch 说明:本篇文章主要是通过springboot整合es的基本使用基础,详细了解的可以看我上一篇文章:全文搜索-ElasticSearch 有朋友私信我上一篇没有环境 ...

  3. SignalR Connection has not been fully initialized

    在使用 SignalR 过程中遇到 SignalR: Connection has not been fully initialized. Use .start().done() or .start( ...

  4. 如何使用gcc_clang进行C语言的编译_编译的流程是什么?

    编译命令 gcc/clang -g -O2 -o -c test test.c -I... -L... -l -g : 输出文件中的调试信息 -O : 对输出文件做出指令优化,默认是O1, O2优化更 ...

  5. Scrapy 常用的shell执行命令

    1.在任意系统下,可以使用 pip 安装 Scrapy pip install scrapy/ 确认安装成功 >>> import scrapy >>> scrap ...

  6. Lesson 10 Silicon valley

    What does the computer industry thrive on apart from anarchy? Technology trends may push Silicon Val ...

  7. 新建Django 项目完整流程

    1) 在桌面或者其他文件 新建项目名称 (mkdir 新建文件夹) 2)进入文件夹  pipenv --python3(用命令提示粘贴复制, 自己这样写经常有问题) 3) 启动虚拟环境  pipenv ...

  8. HTML的几个注意点

    一.HTML 1.HTML5有哪些新特性?新增的标签有哪些? 新特性: 语义标签——语义化标签使得页面的内容结构化,见名知义 增强型表单——拥有多个新的表单 Input 输入类型.这些新特性提供了更好 ...

  9. Immediate Decodability[UVA644](Trie入门)

    传送门 题意:给出一些数字串,判断是否有一个数字串是另一个串的前缀. 这题真的可以算是Trie树的一道模板题了. 先把Trie树建好,建树的时候记录一个sum表示一个节点有多少个串会包含此节点,然后再 ...

  10. Django:验证email或者name是否已被注册

    灵感: http://blog.csdn.net/xxm524/article/details/48369623 使用表单的dajngo的clean()方法实现