mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-11 02:58:13 +08:00
57 lines
3.0 KiB
HTML
57 lines
3.0 KiB
HTML
|
<p>给你一个长度为 <code>n</code> 的<span data-keyword="prime">质数</span>数组 <code>nums</code> 。你的任务是返回一个长度为 <code>n</code> 的数组 <code>ans</code> ,对于每个下标 <code>i</code> ,以下<strong> 条件</strong> 均成立:</p>
|
|||
|
|
|||
|
<ul>
|
|||
|
<li><code>ans[i] OR (ans[i] + 1) == nums[i]</code></li>
|
|||
|
</ul>
|
|||
|
|
|||
|
<p>除此以外,你需要 <strong>最小化</strong> 结果数组里每一个 <code>ans[i]</code> 。</p>
|
|||
|
|
|||
|
<p>如果没法找到符合 <strong>条件</strong> 的 <code>ans[i]</code> ,那么 <code>ans[i] = -1</code> 。</p>
|
|||
|
|
|||
|
<p><strong>质数</strong> 指的是一个大于 1 的自然数,且它只有 1 和自己两个因数。</p>
|
|||
|
|
|||
|
<p> </p>
|
|||
|
|
|||
|
<p><strong class="example">示例 1:</strong></p>
|
|||
|
|
|||
|
<div class="example-block">
|
|||
|
<p><span class="example-io"><b>输入:</b>nums = [2,3,5,7]</span></p>
|
|||
|
|
|||
|
<p><span class="example-io"><b>输出:</b>[-1,1,4,3]</span></p>
|
|||
|
|
|||
|
<p><b>解释:</b></p>
|
|||
|
|
|||
|
<ul>
|
|||
|
<li>对于 <code>i = 0</code> ,不存在 <code>ans[0]</code> 满足 <code>ans[0] OR (ans[0] + 1) = 2</code> ,所以 <code>ans[0] = -1</code> 。</li>
|
|||
|
<li>对于 <code>i = 1</code> ,满足 <code>ans[1] OR (ans[1] + 1) = 3</code> 的最小 <code>ans[1]</code> 为 <code>1</code> ,因为 <code>1 OR (1 + 1) = 3</code> 。</li>
|
|||
|
<li>对于 <code>i = 2</code> ,满足 <code>ans[2] OR (ans[2] + 1) = 5</code> 的最小 <code>ans[2]</code> 为 <code>4</code> ,因为 <code>4 OR (4 + 1) = 5</code> 。</li>
|
|||
|
<li>对于 <code>i = 3</code> ,满足 <code>ans[3] OR (ans[3] + 1) = 7</code> 的最小 <code>ans[3]</code> 为 <code>3</code> ,因为 <code>3 OR (3 + 1) = 7</code> 。</li>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
|
|||
|
<p><strong class="example">示例 2:</strong></p>
|
|||
|
|
|||
|
<div class="example-block">
|
|||
|
<p><span class="example-io"><b>输入:</b>nums = [11,13,31]</span></p>
|
|||
|
|
|||
|
<p><span class="example-io"><b>输出:</b>[9,12,15]</span></p>
|
|||
|
|
|||
|
<p><b>解释:</b></p>
|
|||
|
|
|||
|
<ul>
|
|||
|
<li>对于 <code>i = 0</code> ,满足 <code>ans[0] OR (ans[0] + 1) = 11</code> 的最小 <code>ans[0]</code> 为 <code>9</code> ,因为 <code>9 OR (9 + 1) = 11</code> 。</li>
|
|||
|
<li>对于 <code>i = 1</code> ,满足 <code>ans[1] OR (ans[1] + 1) = 13</code> 的最小 <code>ans[1]</code> 为 <code>12</code> ,因为 <code>12 OR (12 + 1) = 13</code> 。</li>
|
|||
|
<li>对于 <code>i = 2</code> ,满足 <code>ans[2] OR (ans[2] + 1) = 31</code> 的最小 <code>ans[2]</code> 为 <code>15</code> ,因为 <code>15 OR (15 + 1) = 31</code> 。</li>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
|
|||
|
<p> </p>
|
|||
|
|
|||
|
<p><strong>提示:</strong></p>
|
|||
|
|
|||
|
<ul>
|
|||
|
<li><code>1 <= nums.length <= 100</code></li>
|
|||
|
<li><code>2 <= nums[i] <= 10<sup>9</sup></code></li>
|
|||
|
<li><code>nums[i]</code> 是一个质数。</li>
|
|||
|
</ul>
|