題目:求正整數(shù)N(N>1)的質(zhì)因數(shù)的個數(shù)。 相同的質(zhì)因數(shù)需要重復(fù)計算障贸。如120=22235,共有5個質(zhì)因數(shù)吟宦。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int N;
while(cin >> N) {
int res = 0;
for(int i = 2; i <= sqrt(N); i++) {
while(N % i == 0) {
N /= i;
res++;
}
if(N == 1) break;
}
cout << res + 1 << endl;
}
return 0;
}
x(x≥2)能夠被小于根號x的質(zhì)數(shù)分解篮洁,所以把x用質(zhì)數(shù)2多次分解后能夠保證下次可能整除x的數(shù)只能為3。這樣就無需判斷每個整除的數(shù)是否為質(zhì)數(shù)殃姓。