题解 | #质数因子#
质数因子
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")
