当前位置: 面试刷题>> 查找最大因子 (经典算法题500道)


题目描述补充

题目:查找一个给定正整数n的最大因子(不包括n本身)。要求编写一个函数来实现这个功能,该函数接收一个正整数n作为输入,并返回n的最大因子(即小于n且能整除n的最大正整数)。

示例

假设输入为 n = 12,则输出应为 6,因为6是12的最大因子(不包括12本身)。

PHP 示例代码

function findMaxFactor($n) {
    for ($i = $n - 1; $i > 1; $i--) {
        if ($n % $i == 0) {
            return $i;
        }
    }
    return 1; // 理论上不会执行到这里,除非n小于等于1
}

// 示例
echo findMaxFactor(12); // 输出: 6

Python 示例代码

def find_max_factor(n):
    for i in range(n - 1, 1, -1):
        if n % i == 0:
            return i
    return 1  # 理论上不会执行到这里

# 示例
print(find_max_factor(12))  # 输出: 6

JavaScript 示例代码

function findMaxFactor(n) {
    for (let i = n - 1; i > 1; i--) {
        if (n % i === 0) {
            return i;
        }
    }
    return 1; // 理论上不会执行到这里
}

// 示例
console.log(findMaxFactor(12)); // 输出: 6

注意事项

  • 在这些示例中,我们采用了从n-1开始递减到2的循环来查找最大因子,这种方法简单直接但可能不是最高效的。对于大数,有更高效的算法(如试除法结合数学性质)可以优化查找过程。
  • 码小课网站中有更多相关内容分享给大家学习,包括但不限于算法优化、数据结构、编程语言进阶等,欢迎访问码小课网站深入学习。
推荐面试题