rt,code:
#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
using namespace std;
ll Read() {
int sig = 1;
ll num = 0;
char c = getchar();
while(!isdigit(c)) {
if(c == '-') {
sig = -1;
}
c = getchar();
}
while(isdigit(c)) {
num = (num << 3) + (num << 1) + (c ^ 48);
c = getchar();
}
return num * sig;
}
void Write(ll x) {
if(x < 0) {
putchar('-');
x = -x;
}
if(x >= 10) {
Write(x / 10);
}
putchar((x % 10) ^ 48);
}
const ll Mod = 1000000009;
const int N = 1050005;
ll f[N][27], g[N];
ll hsh[N], p26[N];
inline bool Same(int l1, int r1, int l2, int r2) {
return (r1 - l1 == r2 - l2 && (hsh[r1] - hsh[l1 - 1] * p26[r1 - l1 + 1] % Mod + Mod) % Mod == (hsh[r2] - hsh[l2 - 1] * p26[r2 - l2 + 1] % Mod + Mod) % Mod);
}
inline void Solve() {
string s;
char c = getchar();
while(c < 'a' || c > 'z') {
c = getchar();
}
while(c >= 'a' && c <= 'z') {
s.push_back(c);
c = getchar();
}
register int i, j;
int n = s.size();
s = "$" + s + "$";
ll h = 0;
p26[0] = 1;
for(i = 1; i <= n; i++) {
memcpy(f[i], f[i - 1], sizeof(f[i]));
h ^= 1 << (s[i] - 'a');
hsh[i] = (hsh[i - 1] * 26ll % Mod + s[i] - 'a') % Mod;
for(j = __builtin_popcount(h); j < 27; j++) {
f[i][j]++;
}
}
h = 0;
for(i = n; i >= 1; i--) {
h ^= 1 << (s[i] - 'a');
g[i] = __builtin_popcount(h);
}
ll ans = 0;
for(i = 2; i < n; i++) {
for(j = 1; j * i < n; j++) {
if(!Same(1, i, i * (j - 1) + 1, i * j)) {
break;
}
ans += f[i - 1][g[j * i + 1]];
// cout << f[g[j * i + 1]][i - 1] << endl;
}
}
Write(ans), putchar('\n');
for(i = 1; i <= n; i++) {
g[i] = 0;
hsh[i] = 0;
}
}
int main() {
int i;
p26[0] = 1;
for(i = 1; i <= N - 5; i++) {
p26[i] = p26[i - 1] * 26ll % Mod;
}
int testcase = Read();
while(testcase--) {
Solve();
}
}