题解 | #质数因子#

质数因子

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

#include <iostream>
using namespace std;
bool isPrime(int cur) {
    if(cur == 1) return false;
    for(int i = 2; i * i <= cur; i++) {
        if(cur % i == 0) return false;
    }
    return true;
}
int getNext(int cur) {
    cur++;
    while(!isPrime(cur)) {
        cur++; 
    }
    return cur;
} 
int main() {
    int a;
    cin >> a;
    int cur = 2;
    while(a >= cur) {
        if(isPrime(a)) {
            cout << a << " ";
            break;
        }
        if(a % cur == 0) {
            cout << cur << " ";
            a /= cur;
        } else {
            cur = getNext(cur);
        }
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务