求一個數的所有質因子(C++)
功能:輸入一個正整數,按照從小到大的順序輸出它的所有質數的因子(如180的質數因子為2 2 3 3 5 )
最後一個數後面也要有空格剛開始沒有思路,後來查了下質因子的求法,可通過以下方法求出:
#include<iostream>#include<string>
using namespace std;
string getResult(long input) {
int i = 2;
string result="";
for (; input >= 2;) {
if(input%i==0){
result += to_string(i) + " ";
input /=i ;
}
else {
i++;
}
}
return result;
}
int main() {
long input;
cin >> input;
cout << getResult(input);
return 0;
}
該方法從質數2開始,如果能除盡,就將被分解數除以已知的質因子,逐步分解,最終求得所有的質因子。