n=int(input()) d=[] for i in range(1,int(n**0.5)+2): if n%i==0: if i*i<=n: d.append(i) ans=0 for i in range(len(d)): x=format(d[i],'016b') for j in range(2**16): x1=[] x2=[] b=format(j,'016b') for j2 in range(16): if x[j2]=='0': if b[j2]=='0': x1.append(0) x2.append(0) else: x1.append(1) x2.append(1) else: if b[j2]=='0': x1.append(0) x2.append(1) else: x1.append(1) x2.append(0) X1=0 X2=0 x1.reverse() x2.reverse() for j2 in range(16): X1+=x1[j2]*2**j2 X2+=x2[j2]*2**j2 if X1|X2==n//d[i]: ans+=1 print(ans//2)