0
点赞
收藏
分享

微信扫一扫

【算法题】2507. 使用质因数之和替换后可以取到的最小值


题目:

给你一个正整数 n 。

请你将 n 的值替换为 n 的 质因数 之和,重复这一过程。

注意,如果 n 能够被某个质因数多次整除,则在求和时,应当包含这个质因数同样次数。
返回 n 可以取到的最小值。

示例 1:

输入:n = 15
输出:5
解释:最开始,n = 15 。
15 = 3 * 5 ,所以 n 替换为 3 + 5 = 8 。
8 = 2 * 2 * 2 ,所以 n 替换为 2 + 2 + 2 = 6 。
6 = 2 * 3 ,所以 n 替换为 2 + 3 = 5 。
5 是 n 可以取到的最小值。
示例 2:

输入:n = 3
输出:3
解释:最开始,n = 3 。
3 是 n 可以取到的最小值。

提示:

2 <= n <= 10^5

java代码:

class Solution {
    public int smallestValue(int n) {
        int ans = 0, tmp = n;
        for (int i = 2; tmp > 1; i++) {
            while (tmp % i == 0) {
                tmp /= i;
                ans += i;
            }
        }
        return ans == n ? n : smallestValue(ans);
    }
}


举报

相关推荐

0 条评论