""" Nの約数を列挙 A^B は、A|B に包含されている A|B で立っていて、 A^B で立っていないのは、1通り A|B で立っていて、 A^B で立っているのは、2通り """ import sys from sys import stdin def solve(a,b): #print (a,b) if a & b != b: return 0 ret = 1 for i in range(31): if 2**i & a > 0 and 2**i & b > 0: ret *= 2 if a == b: ret -= 1 return ret N = int(stdin.readline()) ans = 0 for i in range(1,N+1): if i ** 2 > N: break if i ** 2 == N: a = i b = i ans += solve(a,b) elif N % i == 0: a = i b = N // i ans += solve(b,a) print (ans // 2)