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