一个正整数可以分解成一个或多个数的积。例如36=223*3,即包含2和3两个因子。NowCoder最近在研究因子个数的分布规律,现在给出一系列正整数,他希望你开发一个程序输出每个正整数的因子个数。
#include<iostream>
using namespace std;
int main() {
int n = 0;
while (cin >> n) {
int sum = 0;
int k = (int)sqrt(n);
for (int i = 2; i <= k; i++) {
if (n % i == 0) {
while (n % i == 0) {
n /= i;
}
sum++;
}
}
//循环出来后如果n不是1,那就是一个素因子,所以最后的sum要加一
if (n == 1) {
cout << sum << endl;
}
else {
cout << ++sum << endl;
}
}
return 0;
}