华为od面试手撕真题【分解质因数】

群里小伙伴反馈的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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MISAYAONE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值