Skip to main content
Back to problems
#3115
Medium Algorithms

Maximum prime difference

Array Math Number Theory
58.6% acceptance
Feb 23, 2026
125
16
You are given an integer array nums. Return an integer that is the maximum distance between the indices of two (not necessarily different) prime numbers in nums.

Solution

Rust
Time O(2^n)
Space O(n)
LeetCode
solution.rs
impl Solution {
  fn is_prime(n: i32) -> bool {
    if n < 2 { return false; }
    if n == 2 { return true; }
    if n % 2 == 0 { return false; }
    let mut i = 3;
    while i * i <= n {
      if n % i == 0 { return false; }
      i += 2;
    }
    true
  }

  pub fn maximum_prime_difference(nums: Vec<i32>) -> i32 {
    let first = nums.iter().position(|&x| Self::is_prime(x)).unwrap();
    let last = nums.iter().rposition(|&x| Self::is_prime(x)).unwrap();
    (last - first) as i32
  }
}