给你一个长度为 n 的整数数组 nums。
你从下标 0 开始,目标是到达下标 n - 1。
在任何下标 i 处,你可以执行以下操作之一:
i + 1 或 i - 1,如果该下标在边界内。nums[i] 是一个质数 p,你可以立即跳到任何满足 nums[j] % p == 0 的下标 j 处,且下标 j != i 。返回到达下标 n - 1 所需的 最少 跳跃次数。
质数 是一个大于 1 的自然数,只有两个因子,1 和它本身。
示例 1:
输入: nums = [1,2,4,6]
输出: 2
解释:
一个最优的跳跃序列是:
i = 0 开始。向相邻下标 1 跳一步。i = 1,nums[1] = 2 是一个质数。因此,我们传送到索引 i = 3,因为 nums[3] = 6 可以被 2 整除。因此,答案是 2。
示例 2:
输入: nums = [2,3,4,7,9]
输出: 2
解释:
一个最优的跳跃序列是:
i = 0 开始。向相邻下标 i = 1 跳一步。i = 1,nums[1] = 3 是一个质数。因此,我们传送到下标 i = 4,因为 nums[4] = 9 可以被 3 整除。因此,答案是 2。
示例 3:
输入: nums = [4,6,5,8]
输出: 3
解释:
0 → 1 → 2 → 3 移动。因此,答案是 3。
提示:
1 <= n == nums.length <= 1051 <= nums[i] <= 106