#11950. 问题 [016]:N个整数的最大公约数

问题 [016]:N个整数的最大公约数

问题 [016]:N个整数的最大公约数 (难度:中等) 竞技编程-提高思维

题目描述 给定N个正整数A1, A2, ..., AN,求它们的最大公约数。

输入格式 输入包含一个整数N,表示正整数的个数。接下来是N个整数,表示需要求最大公约数的数列。

  • 2 ≤ N ≤ 10^5
  • 2 ≤ Ai ≤ 10^18
  • 所有输入均为整数

输出格式 输出N个整数的最大公约数。

示例

输入示例 1:

3
12 18 24

输出示例 1:

6

解释:12、18和24的最大公约数是6,因此输出6。

时间复杂度分析 本题可以通过迭代计算多个数的最大公约数,利用欧几里得算法来求得两数的最大公约数,时间复杂度为O(log(Ai))。对于N个数,我们需要执行N-1次两两计算,因此总时间复杂度为O(N * log(Ai)),在N最大为10^5,Ai最大为10^18时,算法能够在规定时间内完成。