找long型整数的所有质因数,并输出
#include <iostream>
#include <cmath>
using namespace std;
int main(){
long LL;
cin >> LL ;
// LL的质因子一定小于等于sqrt(LL),因此做出如下优化,否则会超时
for(int i = 2 ; i <= sqrt(LL) ; i++){
while(LL != i){
if(LL % i == 0){
cout << i << " ";
LL = LL / i;
}
else {
break;
}
}
}
cout << LL << " " ;
}知识点解析:
- 注意超时的问题,利用质因子的性质对循环过程进行优化

京公网安备 11010502036488号