HJ6 质数因子 | 杂乱无章的初级程序员的题解

质数因子

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

减而治之

递推

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    uint32_t n;
    cin >> n;

    for (uint32_t i = 2u; i < sqrt(n) + 1; ++i) {
        while (n % i == 0) {
            cout << i << ' ';
            n /= i;
        }
    }
    if (n > 1u) {
        cout << n << ' ';
    }
    cout << endl;
}

递归

#include <cmath>
#include <iostream>
#include <string>

using namespace std;

string PrimeFactors(uint32_t i, uint32_t n)
{
    for (; i < sqrt(n) + 1; ++i) {
        if ((n % i) == 0) {
            return to_string(i) + " " + PrimeFactors(i, n / i);
        }
    }
    return to_string(n) + " ";
}

int main()
{
    uint32_t n;
    cin >> n;
    cout << PrimeFactors(2, n);
}

变更履历

2022/8/27:优化递归解法,新增递推解法

#华为机试#
全部评论
从for里跳出来的 都是false啊,而且 2 的时候不是无限循环吗,2%2=0 false 又是 2%2 有点看不懂
1 回复 分享
发布于 2019-09-06 15:28
用39测试过这个程序吗?
点赞 回复 分享
发布于 2023-03-01 21:55 广东

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
测试糕手手:社会第一课,随便吹牛逼,直接说四个月,别老实。老实人只会被欺负
点赞 评论 收藏
分享
评论
5
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务