Untitled

 avatar
unknown
python
2 years ago
662 B
15
Indexable
# co
import math 
import sys
def count(X):
    seti=set()
    j=1 
    while math.pow(2,j) <=X:
        seti.add(math.floor(X/math.pow(2,j)))
        j+=1
    return (seti)
    
def binaryToDecimal(n):
    return int(n,2)
 
t=int(input())
while(t>0):
    n=int(input())
    s=input()
    num=0
    y=0
    num=binaryToDecimal(s)
    myset=count(num)
    listt=list(myset)   #listt contains the j
    if num==2:
        print("2")
        t-=1 
        continue
    mini=num^listt[0]
    for i in range(len(listt)):
        if num^listt[i]<mini:
            mini=num^listt[i] 
            y=i
    out =listt[y]
    d=num/out
    print(int(math.log(d,2)))
    t-=1
Editor is loading...