

def isSquare(a):
    if a == 0:
        return False
    for i in range(int(a**0.5)+2):
        if i**2 == a:
            return True

    return False


def dfa(x):
    return  4*int(round(x**0.5)) + 4



if __name__ == '__main__':
    tempo = input()
    s = input()
    cX, cO = 0,0
    rX = []
    rO = []


    for i in range(len(s)):
        if s[i] == 'X':
            cX += 1
        else:
            cO += 1
        rX.append(cX)
        rO.append(cO)

    nX, nO = [], []
    for i in range(1,len(rX)+1):
        nX.append(rX[-i])
        nO.append(rO[-i])
    nX.append(0)
    nO.append(0)
    #print(nX, nO)
    squares = [x**2 for x in range(1, int(round(len(s)**0.5))+2)]

    counter = 0
    for i in range(len(nX)):
        for j in squares[2:]:
            if i+j >= len(nX):
                break
            cX, cO = nX[i] - nX[i+j], nO[i] - nO[i+j]
            #print(cX, cO)
            if cX in squares and cO == dfa(cX):
                counter += 1
            elif cO in squares and cX == dfa(cO):
                counter += 1

    print(counter)
