代碼實現:
#include<iostream>
using namespace std;
void breakdown(int x)
{int t = x;for(int i = 2;i <= x/i;i++){if(t%i == 0){int counts = 0;while(t % i == 0){t/=i;counts++;}cout << i <<" "<< counts<<endl;}}if(t > 1) cout << t <<" " << 1<<endl;//因為大于根號x的質因數不會超過一個,所以這樣分大、小質因數處理,將時間復雜度降為根號ncout <<endl;
}int main()
{int n;cin>>n;while(n--){int x;scanf("%d",&x);breakdown(x);}return 0;
}
性能:
將時間復雜度降為?