- 分解质因数
#include <iostream>
#include <set>
#include <map>
#include <cmath>
using namespace std;
int main()
{int n;cin >> n;for (int i = 0; i < n; i++){int num;map<int, int> mp;set<int> cun;cin >> num;for (int i = 2; i <= sqrt(num); i++)//这里不用sqrt会超时{if (num % i == 0){cun.insert(i);mp[i] = 0;while (num % i == 0){mp[i]++;num /= i;}}}if (num != 1){cun.insert(num);mp[num]++;}for (set<int>::iterator it = cun.begin(); it != cun.end(); it++){cout << *it << " " << mp[*it] << endl;}cout << endl;}
}