质因数分解

2018-12-31  本文已影响0人  atok

题目:求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=22235,共有5个质因数。

#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的质数分解,所以把x用质数2多次分解后能够保证下次可能整除x的数只能为3。这样就无需判断每个整除的数是否为质数。

上一篇 下一篇

猜你喜欢

热点阅读