当前位置: 面试刷题>> 查找最大因子 (经典算法题500道)
### 题目描述补充
题目:查找一个给定正整数n的最大因子(不包括n本身)。要求编写一个函数来实现这个功能,该函数接收一个正整数n作为输入,并返回n的最大因子(即小于n且能整除n的最大正整数)。
### 示例
假设输入为 `n = 12`,则输出应为 `6`,因为6是12的最大因子(不包括12本身)。
### PHP 示例代码
```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 示例代码
```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 示例代码
```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的循环来查找最大因子,这种方法简单直接但可能不是最高效的。对于大数,有更高效的算法(如试除法结合数学性质)可以优化查找过程。
- 码小课网站中有更多相关内容分享给大家学习,包括但不限于算法优化、数据结构、编程语言进阶等,欢迎访问码小课网站深入学习。