漂亮数

题目描述

我们定义一个正整数 xx 是“漂亮数”,当且仅当它同时满足以下两个条件:

  1. xx 是一个正整数。
  2. 存在一个质数 pp,使得 xxpp 的倍数,且 p2xp^2 \ge x
    • 形式化地,存在质数 pp 满足 x(modp)=0x \pmod p = 0p×pxp \times p \ge x

给定一个正整数 nn,请你计算有多少个小于等于 nn 的正整数是“漂亮数”。

输入格式

输入一行,包含一个正整数 nn

输出格式

输出一行,包含一个正整数,表示小于等于 nn 的“漂亮数”的数量。

样例

样例输入

10

样例输出

8

提示

样例说明

111010 的整数中:

  • 11 不是漂亮数,因为它没有质数因子。
  • 88 不是漂亮数。它唯一的质数因子是 p=2p=2。虽然 8(mod2)=08 \pmod 2 = 0,但是 2×2=4<82 \times 2 = 4 < 8,不满足 p×pxp \times p \ge x 的条件。
  • 其他数都是漂亮数。例如,对于 x=6x=6,它的质因子有 2233
    • 若选择 p=2p=2,则 2×2=4<62 \times 2 = 4 < 6,不满足。
    • 若选择 p=3p=3,则 3×3=963 \times 3 = 9 \ge 6,满足条件。因此 66 是漂亮数。
  • 小于等于 1010 的漂亮数有 {2,3,4,5,6,7,9,10}\{2, 3, 4, 5, 6, 7, 9, 10\},共 88 个。

数据范围与约定

对于 100%100\% 的数据,保证:

  • 1<n5×1061 < n \le 5 \times 10^6

相关