#135. 好数

好数

题目描述

一个正整数 XX 被称为“好数(good integer)”,当且仅当它满足以下条件:

存在一对正整数 (a,b)(a, b),使得:

X=2a×b2X = 2^a \times b^2

例如,400400 是一个好数,因为:

400=22×102400 = 2^2 \times 10^2

现在给定一个正整数 NN,请你计算在区间 [1,N][1, N] 内(包含两端)有多少个好数。

输入格式

输入仅一行

第一行包括一个正整数NN

  • 1N10181 \leq N \leq 10^{18}

输出格式

输出区间 [1,N][1, N] 内的好数个数。

样例输入

20

样例输出

5

说明

样例解释

112020 之间,有以下五个好数:

  • 2=21×122 = 2^1 \times 1^2
  • 4=22×124 = 2^2 \times 1^2
  • 8=23×128 = 2^3 \times 1^2
  • 16=24×1216 = 2^4 \times 1^2
  • 18=21×3218 = 2^1 \times 3^2