1979. Find Greatest Common Divisor of Array

Given an integer array `nums`, return the greatest common divisor of the smallest number and largest number in `nums`.

The greatest common divisor of two numbers is the largest positive integer that evenly divides both numbers.

Example 1:

```Input: nums = [2,5,6,9,10]
Output: 2
Explanation:
The smallest number in nums is 2.
The largest number in nums is 10.
The greatest common divisor of 2 and 10 is 2.
```

Example 2:

```Input: nums = [7,5,6,8,3]
Output: 1
Explanation:
The smallest number in nums is 3.
The largest number in nums is 8.
The greatest common divisor of 3 and 8 is 1.
```

Example 3:

```Input: nums = [3,3]
Output: 3
Explanation:
The smallest number in nums is 3.
The largest number in nums is 3.
The greatest common divisor of 3 and 3 is 3.
```

Constraints:

• `2 <= nums.length <= 1000`
• `1 <= nums[i] <= 1000`

1979. Find Greatest Common Divisor of Array
``````struct Solution;

impl Solution {
fn find_gcd(nums: Vec<i32>) -> i32 {
let min = nums.iter().min().unwrap();
let max = nums.iter().max().unwrap();
for i in (2..=*min).rev() {
if min % i == 0 && max % i == 0 {
return i;
}
}
1
}
}

#[test]
fn test() {
let nums = vec![2, 5, 6, 9, 10];
let res = 2;
assert_eq!(Solution::find_gcd(nums), res);
let nums = vec![7, 5, 6, 8, 3];
let res = 1;
assert_eq!(Solution::find_gcd(nums), res);
let nums = vec![3, 3];
let res = 3;
assert_eq!(Solution::find_gcd(nums), res);
}
``````