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

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

题目来源: 
基准时间限制:1 秒 空间限制:131072 KB 分值: 40 
 收藏
 关注
给出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

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

代码:

#include 
#include
#include
#include
#include
#include
#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;}

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

转载于:https://www.cnblogs.com/lightspeedsmallson/p/4899522.html

你可能感兴趣的文章
基于vue+elementUI基础写的横向树形组件
查看>>
获取信息的方式
查看>>
数据表对象
查看>>
第九章:自动内存管理
查看>>
Linux的计划任务
查看>>
Mybatis入门
查看>>
一直在用的一个javascript网站
查看>>
求全排列(数组有重复元素和数组无重复元素) 回溯 递归
查看>>
request详解
查看>>
Spring Framework入门介绍
查看>>
css圆角与阴影,[ie-css3.htc文件需要下载]
查看>>
ecshop 用户名和邮箱都能登陆
查看>>
「spring」spring boot 资源文件找不到
查看>>
通达信删除自定义的指标线
查看>>
python wsgi
查看>>
javascript下获取guid或者UTC时间作为唯一值
查看>>
linux下nfs服务器的搭建
查看>>
busybox microcom Segmentation fault
查看>>
Unity 项目中委托Delegate用法案例
查看>>
模拟DLL加载
查看>>