目录
正整数N(N>1)的质因数的个数
求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。
输入描述:
可能有多组测试数据,每组测试数据的输入是一个正整数N,(1<N<10^9)。
输出描述:
对于每组数据,输出N的质因数的个数。
思路:不断将正整数分为一个质因数和另一个数的乘积
#include <iostream>
using namespace std;int main(){
long n;
int num=0;
bool flag=false;
cin>>n;
while(n!=1){
flag=false;
for(int i=2;i*i<n;i++){
if(n%i==0){
num++;
n=n/i;
i=n;
flag=true;//有因子
}
}
if(flag==false){
num++;
n=1;
}
}
cout<<num<<endl;
}
同样的思路和他人比较:
#include<iostream>
#include<cmath>
using namespace std;
<