返回首页 返回题库

B-smooth数

C++ 中等 GESP五级真题 #数论#线性筛法

题目描述

题面描述

小杨同学想寻找一种名为 -smooth 数的正整数。

如果一个正整数的最大质因子不超过 ,则该正整数为 -smooth 数。

小杨同学想知道,对于给定的 和 ,有多少个不超过 的 -smooth 数。

输入格式

第一行包含两个正整数 ,含义如题面所示。

输出格式

输出一个非负整数,表示不超过 的 -smooth 数的数量。

样例1

输入:

10 3

输出:

7

样例解释

在不超过 10 的正整数中,3-smooth 数有 ,共 7 个。

样例2

输入:

5 2

输出:

3

样例2解释

在不超过5的正整数中,2-smooth数有 ,共3个。

数据范围

对于全部数据,保证有 ,。

  • 子任务1(30%):,
  • 子任务2(30%):,
  • 子任务3(40%):,

时间限制

1秒

内存限制

128MB

💡 查看提示(先自己想一想再看)
核心考察线性筛法(欧拉筛)的变形应用,需要在筛素数的过程中记录每个数的最大质因子。注意1的最大质因子特殊处理为1,因此当B≥1时1永远是B-smooth数。处理大数组时注意内存占用,$10^6$ 规模的数组在C++中是可行的。
⚙ 开始做这道题 0 人做过 · 0 收藏 · 5 浏览

讨论(0)