所谓质因数是指:除了1以外,两个没有其他共同质因子的正整数称为互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质。
#include<iostream>
using namespace std;
int main(){
int n;
cout<<"请输入n:";
cin>>n;
int k;
int m=n;
for(int i=2;i*i<=n;i++){
while(m%i==0){
cout<<i<<endl;
k++;
m=m/i;
}
}
if(m>1)
k++;
cout<<n<<"质因数的个数是:"<<k;
return 0;
}
注意使用的是while循环 而不是if循环,while循环将求出所有质因数的个数,这其中包含重复的,如果是if只能求出所有约数的个数。