给你一个整数数组 nums
。
一个正整数 x
的任何一个 严格小于 x
的 正 因子都被称为 x
的 真因数 。比方说 2 是 4 的 真因数,但 6 不是 6 的 真因数。
你可以对 nums
的任何数字做任意次 操作 ,一次 操作 中,你可以选择 nums
中的任意一个元素,将它除以它的 最大真因数 。
你的目标是将数组变为 非递减 的,请你返回达成这一目标需要的 最少操作 次数。
如果 无法 将数组变成非递减的,请你返回 -1
。
示例 1:
输入:nums = [25,7]
输出:1
解释:
通过一次操作,25 除以 5 ,nums
变为 [5, 7]
。
示例 2:
输入:nums = [7,7,6]
输出:-1
示例 3:
输入:nums = [1,1,1,1]
输出:0
提示:
1 <= nums.length <= 105
1 <= nums[i] <= 106