output_description: Print the sum of the answers to the questions for the integers between 0 and X
  (inclusive), modulo 998244353.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      X
attempt: def make_divisors(n):
      divisors = []
      for i in range(1, int(n**0.5) + 1):
          if n % i == 0:
              divisors.append(i)
              if i != n // i:
                  divisors.append(n // i)
      divisors.sort()
      return divisors
  
  
  def nasu(x):
      t = make_divisors(x)
      c = 0
      for i in t:
          c += D[i]
      return c
  
  
  def honya(x):
      y = 0
      k = 1
      for i in range(x - 1, -1, -1):
          if X[i]:
              y = (y + k) % MOD
          k = (k * 2) % MOD
      return y + honyaraka(x)
  
  
  def honyaraka(x):
      cnt = 0
      for i in range(N // x):
          t = i % 2
          for j in range(x):
              if X[cnt] != (X[j] ^ t):
                  if X[cnt] == 0:
                      return 0
                  else:
                      return 1
              cnt += 1
      return 1
  
  
  N = int(input())
  X = list(map(int, input()))
  MOD = 998244353
  
  Y = 0
  k = 1
  for i in range(N - 1, -1, -1):
      if X[i]:
          Y = (Y + k) % MOD
      k = (k * 2) % MOD
  
  D = [0] * (N + 1)
  L = make_divisors(N)
  
  cnt = 0
  for i in L:
      if i != N and (N // i) % 2 == 1:
          D[i] = honya(i) - nasu(i)
          cnt += D[i]
  
  D[N] = Y - cnt + 1
  
  ans = 0
  for i in L:
      ans = (ans + D[i] * i * 2) % MOD
  
  print(ans)
  
problem_description: Statement
  
  Given are integers N and X. For each integer k between 0 and X (inclusive),
  find the answer to the following question, then compute the sum of all those
  answers, modulo 998244353.
  
    * Let us repeat the following operation on the integer k. Operation: if the integer is currently odd, subtract 1 from it and divide it by 2; otherwise, divide it by 2 and add 2^{N-1} to it. How many operations need to be performed until k returns to its original value? (The answer is considered to be 0 if k never returns to its original value.)
samples: [{"input": "3\n    111", "output": "40\n    \n\nFor example, for k=3, the operation changes k as follows: 1,0,4,6,7,3.\nTherefore the answer for k=3 is 6.\n\n* * *"}, {"input": "6\n    110101", "output": "616\n    \n\n* * *"}, {"input": "30\n    001110011011011101010111011100", "output": "549320998"}]