#include <iostream> #include <string> #include <stack> #include <valarray> using namespace std; bool f(int a) { if (a <= 1) { cout << "no"; return false; } double bound = sqrt(a); for (int i = 2; i <= bound; ++i) { if (a % i == 0) { return false; } } return true; } int su(int a, int b) { for (int i = a; i < b; ++i) { if (f(i)) { // cout<<"i:"<<i<<endl; return i; } } return -1; } int main() { int a, sum = 0, i = 2; cin >> a; int x = a; while (a != 1) { int t = su(i, x); if (a % t == 0) { // cout<<"t:"<<t<<endl; a = a / t; sum++; if (f(a)) { //因为数太大,有时会超时,就加这个代码直接判断a是不是素数,是的话直接返回,会快的多 sum++; break; } i = 2; } else { i++; } } cout << sum; }