Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <set>
- #include <algorithm>
- #include <cmath>
- #include <iomanip>
- #include <string>
- #include <map>
- #include <set>
- #include <cassert>
- #include <ciso646>
- #include <climits>
- #include <cmath>
- #include <cstdint>
- #include <cstdio>
- #include <cstdlib>
- #include <cstring>
- #include <ctime>
- #include <array>
- #include <bitset>
- #include <deque>
- #include <forward_list>
- #include <list>
- #include <map>
- #include <queue>
- #include <set>
- #include <stack>
- #include <unordered_map>
- #include <unordered_set>
- #include <vector>
- #include <algorithm>
- #include <complex>
- #include <functional>
- #include <initializer_list>
- #include <iterator>
- #include <limits>
- #include <locale>
- #include <numeric>
- #include <regex>
- #include <string>
- #include <utility>
- #include <fstream>
- #include <iostream>
- #include <sstream>
- #include <iomanip>
- #include <random>
- #include <memory>
- #include <chrono>
- using namespace std;
- const int inf = 1e9 + 7;
- using ll = long long;
- #define pb push_back
- #define v vector<ll>
- #define sorti sort(s.begin(), s.end());
- ll gcd (ll a, ll b) {
- if (b == 0) {
- return a;
- }
- return gcd(b, a % b);
- }
- int main() {
- ll t = 1;
- cin >> t;
- for (int u = 0; u < t; u++) {
- ll n;
- cin >> n;
- vector<ll> s(n), dp(n, -1);
- for (int i = 0; i < n; i++) {
- cin >> s[i];
- }
- vector<ll> pr(11);
- pr[0] = 2;
- pr[1] = 3;
- pr[2] = 5;
- pr[3] = 7;
- pr[4] = 11;
- pr[5] = 13;
- pr[6] = 17;
- pr[7] = 19;
- pr[8] = 23;
- pr[9] = 29;
- pr[10] = 31;
- ll kol = 1;
- for (int i = 0; i < pr.size(); i++) {
- ll f = 0;
- for (int j = 0; j < n; j++) {
- if (dp[j] == -1 && s[j] % pr[i] == 0) {
- f++;
- dp[j] = kol;
- }
- }
- if (f > 0) {
- kol++;
- }
- }
- ll koli = -1;
- for (int i = 0; i < n; i++) {
- koli = max(koli, dp[i]);
- }
- cout << koli << endl;
- for (int i = 0; i < n; i++) {
- cout << dp[i] << " ";
- }
- cout << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement