关闭

51Nod 1179 最大的最大公约数

标签: 51nod枚举答案
212人阅读 评论(0) 收藏 举报
分类:
题目来源: 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
发现Max(s[0],s[1],s[2]...s[n-1])比较小,那么就枚举答案吧。
app[i]表示i在s中出现的次数。那么显然,如果一个数所有倍数的出现次数之和大于1,这个数就是某两个数的公约数。
则从大到小枚举最大公约数,并在app数组中检查是否倍数出现次数之和大于1,找到的第一个就是答案。复杂度是O(ln(Max)Max),一千万多一点。
附代码
#include<bits/stdc++.h>
#define N 1000010
using namespace std;
int n,app[N],amax;
int main(){
	scanf("%d",&n);
	for(int i=0,t;i<n;i++){
		scanf("%d",&t);
		app[t]++;
		amax=max(amax,t);
	}
	int tot=0;
	for(int i=amax;i;i--){
		int zon=0;
		for(int j=i;j<=amax;j+=i){
			zon+=app[j];tot++;
		}
		if(zon>1){
			printf("%d %d %lf\n",i,tot,log(99)*99);
			exit(0);
		}
	}
	return 0;
}



1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

51NOD 1040 最大公约数之和(分析 + 欧拉函数)

传送门 1040 最大公约数之和 题目来源: rihkddd 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 给出一个n,求1-n这n个数,同n的最大公约数的和。比如:n = 6 1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在...
  • qingshui23
  • qingshui23
  • 2016-05-30 10:53
  • 745

51nod 1179:最大的最大公约数

1179 最大的最大公约数 题目来源: SGU 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 给出N个正整数...
  • u010885899
  • u010885899
  • 2015-10-13 20:46
  • 442

51nod 1179 最大的最大公约数

题意:给你n个数字,任意两个数字都有一个最大公约数,那么最大的公约数为多少 思路1:每个数字都能以sqrt(a)的复杂度枚举出a的所有因子。统计n个数字的所有因子出现的个数。然后从大到小枚举因子,输出最大的出现两次以上的那个因子。 思路2:桶排序出现的n个数字。统计出最大值,然后开始从大到小枚举这个...
  • xiangAccepted
  • xiangAccepted
  • 2017-11-22 23:05
  • 40

51 NOD 1188 最大公约数之和 V2(基础数论)

数学 推导公式 欧拉筛法
  • qingshui23
  • qingshui23
  • 2016-08-10 17:24
  • 873

51NOD 1179 最大的最大公约数

传送门 1179 最大的最大公约数 题目来源: SGU 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 给出N个正整数,找出N个数两两之间最大公约数的最大值。例如:N = 4,4个数为:9 15 25 16,两两之间最大公约数的最大值是15同25的最大公约...
  • qingshui23
  • qingshui23
  • 2016-05-24 19:19
  • 427

51Nod 1179 最大的最大公约数

1179 最大的最大公约数 题目来源: SGU 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 给出N个正整数,找出N个数两两之间最大公约数的最大值。例如:N = 4,4个数为:9 15 25 16,两两之间最大公约数的最大值是15同25的最大公约数5。 ...
  • iamldy
  • iamldy
  • 2017-05-10 01:38
  • 130

1179 最大的最大公约数

1179 最大的最大公约数 题目来源: SGU 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 给出N个正整数,找出N个数两两之间最大公约数的最大值。例如:N = 4,4个数为:9 15 25 16,两两之间最大公约数的最大值是15同25的最大公约数5。...
  • hypHuangYanPing
  • hypHuangYanPing
  • 2018-01-03 13:03
  • 75

[51NOD1237]最大公约数之和 V3

题目大意给定nn,试求 ∑i=1n∑j=1ngcd(i,j) \sum_{i=1}^n\sum_{j=1}^n\gcd(i,j) 结果对109+710^9+7取模。2≤n≤10102\le n\le10^{10}题目分析我们将题目改为求 ∑i=1n∑j=1igcd(i,j) \sum_{i=...
  • a_crazy_czy
  • a_crazy_czy
  • 2017-02-25 23:06
  • 558

oj2003: C语言实验——最小公倍数和最大公约数

问题描述:从键盘输入两个正整数,求这两个正整数的最小公倍数和最大公约数,并输出。 作者:何知令 发表时间:2017年2也23日 输入:输入包括一行。 两个以空格分开的正整数。  输出:两个整数的最小公倍数和最大公约数。  代码: /* 问题描述:从键盘输入两个正整数,...
  • qq_36203090
  • qq_36203090
  • 2017-02-23 15:48
  • 503

编程之美读书笔记(5)最大公约数

问题: 求两个数的最大公约数 解法一: 欧几里得辗转相除法: f(x,y) = GCD(x,y), 取k = x / y, b = x % y,则:x = k*y + b; 如果一个数能整除x,y,则它也能整除b,y; 而且能整除b,y的数必能整除x,y,即x,y和b,y的公约数是相同的,...
  • SJF0115
  • SJF0115
  • 2013-02-25 13:01
  • 5300
    个人资料
    • 访问:4857次
    • 积分:509
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:0篇
    • 译文:0篇
    • 评论:5条
    visitors
    Flag Counter