试除法求质因数及其指数
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
void divide(int x) {
for (int i = 2; i <= x / i; i++) { //时间复杂度根号x
if (x % i == 0) { //i一定是质数
int cnt = 0;
while (x % i == 0) x /= i, cnt++;
printf("%d %d\n", i, cnt);
}
}
if (x > 1) printf("%d %d\n\n", x, 1);
else printf("\n");
}
int main() {
int n;
cin >> n;
while (n--) {
int x;
cin >> x;
divide(x);
}
return 0;
}