找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 << " " ; }
知识点解析:
- 注意超时的问题,利用质因子的性质对循环过程进行优化