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: N = int(input())
  X = input()
  MOD = 998244353
  
  ans = 0
  memo = dict()
  
  # def get_divisor(n):
  #     '''nの約数を返す
  #     '''
  #     d = set()
  #     for i in range(1, int(n**0.5)+1):
  #         if n % i == 0:
  #             d.add(i)
  #             d.add(n//i)
  #     return d
  
  
  def get_oddivisor(n):
      """nの約数のうち商が奇数のものを返す"""
      d = set()
      for i in range(1, int(n**0.5) + 1):
          if n % i == 0:
              if i % 2 == 1:
                  d.add(n // i)
              if (n // i) % 2 == 1:
                  d.add(i)
      return d
  
  
  D = list(get_oddivisor(N))
  D.sort()
  
  
  def alternate(x, n):
      """x: 00101, y: 11010, z: (00101)(11010)... n times"""
      y = ("0" * len(x) + bin(int(x, 2) ^ (2 ** len(x) - 1))[2:])[-len(x) :]
      z = (x + y) * (n // 2)
      if n % 2 == 1:
          z += x
      return z
  
  
  for d in D:
      cnt = int(X[:d], 2)
      if int(X, 2) >= int(alternate(X[:d], N // d), 2):
          cnt += 1
      dd = list(get_oddivisor(d))
      for ddd in dd:
          if ddd != d:
              cnt -= memo[ddd]
      memo[d] = cnt
      ans += cnt * 2 * d
      ans %= 998244353
  
  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"}]