找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 << " " ; 
}

知识点解析:

  1. 注意超时的问题,利用质因子的性质对循环过程进行优化