题解 | #质数因子#

质数因子

http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

1. 什么是质数

质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

2. 为什么只需要遍历到n\sqrt{n}即可

假设我们需要寻找nn的质数,当我们找到某个质数xx的时候,那么一定存在另一个数yy,有n=xyn = x * y。也就是说,会有一个数xnx \leq \sqrt{n},另一个数yny \ge \sqrt{n}。如果x,y<nx,y < \sqrt{n}则乘积m<nm < n,如果x,y>nx,y > \sqrt{n}则有乘积m>nm > n,所以我们只需要遍历到n\sqrt{n}即可。

3. JavaScript代码实现

function main() {
    let num = parseInt(readline())
    let res = '', k = Math.sqrt(num)
    for(let i = 2 ; i <= k ; i++) {
        while(num % i === 0) {
            res += i + ' '
            num = Math.floor(num / i)
        }
    }
    // 如果num最后不是1,则说明此时num也是一个质数,需要添加到最后
    if(num !== 1) {
        res += num
    }
    console.log(res)
}

main()
全部评论
Math.floor 这里是起什么作用哩
点赞 回复 分享
发布于 03-20 00:16 陕西

相关推荐

10-15 16:27
门头沟学院 C++
LeoMoon:建议问一下是不是你给他付钱😅😅
点赞 评论 收藏
分享
10-14 10:56
已编辑
长沙学院 嵌入式软件开发
痴心的00后拿到了ssp:hr面挂了,无所谓了反正不去😃
点赞 评论 收藏
分享
评论
9
2
分享
牛客网
牛客企业服务