第26224题
计算1到n的范围内二进制回文数的数量

题目描述

对于一个正整数 n,我们将其转换为不含前导零的二进制表示,如果这个二进制序列从左向右读与从右向左读完全相同,则称该数为二进制回文数。例如,9 的二进制表示为 $1001_2$,是二进制回文数;12 的二进制表示为 $1100_2$,不是二进制回文数。

你的任务是:给定一个正整数 n,计算在 1 到 n 的范围内二进制回文数的数量。

输入格式

输入一行,包含一个正整数 n。

输出格式

输出一行,包含一个数,表示在 1 到 n 的范围内二进制回文数的数量。

样例输入

15

样例输出

6

样例解释

样例1中,1到15范围内1、3、5、7、9、15是二进制回文数。

数据范围

$1 \le n \le 10^5$