#include <cmath> #include <iostream> using namespace std; //分解质因数 bool isPrime(int n){ for(int i =2;i<sqrt(n);i++){ if(n%i == 0)return false; } return true; } int func(int n){ int count = 0; for(int i =2;i<=n;i++){ if(n%i == 0 && isPrime(i)){ count++; n/=i; // cout<<i<<endl; i=1; } } return count; } int main() { int n;cin>>n; cout<<func(n)<<endl; } // 64 位输出请用 printf("%lld")
暴力求解。。。还以为会超时结果没有