群里小伙伴反馈的1月份和2月份都出现的一道面试手撕真题,面试官口述的比较简单:“求一个数的最小因子,并把它写成乘积的形式” ,这种有点偏数学题,而不是代码算法的考察了。
题目不算特别难,但考察的是对数学基础(质因数分解)的理解以及代码实现的严谨性。
我这里把面试官口述的题目补充的详细一点吧,其实就是常见的分解质因数:
题目描述
给定一个正整数 n,求出它的所有最小因子(即质因数),并将这些因子以乘积的形式输出。
例如:
- 输入
12,输出12=2*2*3 - 输入
100,输出100=2*2*5*5 - 输入
13,输出13=13
小伙伴分享的面试现场还原
面试官上来直接丢了个数字 90,然后说写出它的质因数分解形式。我写出来:90 = 2 * 45 = 2 * 3 * 15 = 2 * 3 * 3 * 5。之后面试官:“思路没错,现在用代码实现一下,要求输入任意正整数都能输出这个格式。”
解法一:暴力试除法(最直观)
这是最容易想到的方法。从 2 开始遍历到 n,如果 i 能
订阅专栏 解锁全文

2595

被折叠的 条评论
为什么被折叠?



