#include <bits/stdc++.h>
using namespace std;
#define fast_io ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define int long long
int32_t main() {
fast_io;
int t; cin >> t;
while (t--) {
int n; cin >> n;
string s; cin >> s;
bool all1 = true;
for (char c: s) if (c == '0') { all1 = false; break; }
if (all1) {
cout << 0 << '\n';
continue;
}
vector<int> divisors;
for (int d = 1; d * d <= n; ++d) {
if (n % d == 0) {
divisors.push_back(d);
if (d * d != n) divisors.push_back(n / d);
}
}
sort(divisors.begin(), divisors.end());
int ans = INT_MAX;
for (int g : divisors) {
bool ok = true;
for (int r = 0; r < g && ok; ++r) {
bool has1 = false;
for (int i = r; i < n; i += g) {
if (s[i] == '1') { has1 = true; break; }
}
if (!has1) ok = false;
}
if (ok) ans = min(ans, g);
}
if (ans == INT_MAX) ans = n;
cout << ans << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZmFzdF9pbyBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCkKI2RlZmluZSBpbnQgbG9uZyBsb25nCgppbnQzMl90IG1haW4oKSB7CiAgICBmYXN0X2lvOwogICAgaW50IHQ7IGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIGludCBuOyBjaW4gPj4gbjsKICAgICAgICBzdHJpbmcgczsgY2luID4+IHM7CiAgICAgICAgYm9vbCBhbGwxID0gdHJ1ZTsKICAgICAgICBmb3IgKGNoYXIgYzogcykgaWYgKGMgPT0gJzAnKSB7IGFsbDEgPSBmYWxzZTsgYnJlYWs7IH0KICAgICAgICBpZiAoYWxsMSkgewogICAgICAgICAgICBjb3V0IDw8IDAgPDwgJ1xuJzsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIHZlY3RvcjxpbnQ+IGRpdmlzb3JzOwogICAgICAgIGZvciAoaW50IGQgPSAxOyBkICogZCA8PSBuOyArK2QpIHsKICAgICAgICAgICAgaWYgKG4gJSBkID09IDApIHsKICAgICAgICAgICAgICAgIGRpdmlzb3JzLnB1c2hfYmFjayhkKTsKICAgICAgICAgICAgICAgIGlmIChkICogZCAhPSBuKSBkaXZpc29ycy5wdXNoX2JhY2sobiAvIGQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHNvcnQoZGl2aXNvcnMuYmVnaW4oKSwgZGl2aXNvcnMuZW5kKCkpOwogICAgICAgIGludCBhbnMgPSBJTlRfTUFYOwogICAgICAgIGZvciAoaW50IGcgOiBkaXZpc29ycykgewogICAgICAgICAgICBib29sIG9rID0gdHJ1ZTsKICAgICAgICAgICAgZm9yIChpbnQgciA9IDA7IHIgPCBnICYmIG9rOyArK3IpIHsKICAgICAgICAgICAgICAgIGJvb2wgaGFzMSA9IGZhbHNlOwogICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IHI7IGkgPCBuOyBpICs9IGcpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoc1tpXSA9PSAnMScpIHsgaGFzMSA9IHRydWU7IGJyZWFrOyB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoIWhhczEpIG9rID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKG9rKSBhbnMgPSBtaW4oYW5zLCBnKTsKICAgICAgICB9CiAgICAgICAgaWYgKGFucyA9PSBJTlRfTUFYKSBhbnMgPSBuOwogICAgICAgIGNvdXQgPDwgYW5zIDw8ICdcbic7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=