博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51nod 1179 最大的最大公约数
阅读量:6948 次
发布时间:2019-06-27

本文共 1210 字,大约阅读时间需要 4 分钟。

1179 最大的最大公约数
题目来源: 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示例
49152516
Output示例
5

 

/*51nod 1179 最大的最大公约数给你n个数,求他们两两之间公约数的最大值求出n个数所有的因子并记录它们出现的次数,然后找到其中 num >= 2(有两个数有这个因子) 的最大值即可hhh-2016/05/26 21:57*/#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define lson (i<<1)#define rson ((i<<1)|1)typedef long long ll;using namespace std;const ll maxn = 1000010;const double PI = 3.1415926;const double eps = 1e-15;int n;int num[maxn];int ans;int main(){ //freopen("in.txt","r",stdin); int n,x; scanf("%d",&n); int Max = 0; for(int t = 0;t < n;t++) { scanf("%d",&x); Max = max(x,Max); num[1]++; num[x]++; for(int i = 2; i*i <= x ; i++) if(x %i == 0) { num[i]++; num[x/i]++; } } for(int i = Max;i >= 1;i--) { if(num[i] >= 2) { ans = i; break; } } printf("%d\n",ans); return 0;}

  

转载于:https://www.cnblogs.com/Przz/p/5547949.html

你可能感兴趣的文章
[Android]Dagger2Metrics - 测量DI图表初始化的性能(翻译)
查看>>
sublime开启vim模式
查看>>
Rikka with Chess(规律)
查看>>
【设计模式】迭代器模式
查看>>
MATLAB中imshow()和image()
查看>>
Atitit.eclipse git使用
查看>>
JAVA逆向&反混淆-追查Burpsuite的破解原理(转)
查看>>
cocos2dx 3.1从零学习(一)——入门篇(一天学会打飞机)
查看>>
文档批量格式化之word技能
查看>>
C#~异步编程再续~await与async引起的w3wp.exe崩溃
查看>>
c3p0数据库连接池死锁问题
查看>>
SVN版本冲突解决
查看>>
java多线程知识点汇总(四)多线程知识点脉络图
查看>>
nginx的upstream目前支持5种方式的分配
查看>>
android图像处理(3) 底片效果
查看>>
stl 之set图解
查看>>
HDU 3569 Imaginary Date 简单期望
查看>>
怎么清除火狐浏览器的cookie?
查看>>
连麦介绍
查看>>
MQTT 客户端源码分析
查看>>