当前位置: 首页 > news >正文

好数

题目大意

题目传送门

U611329 好数

题目描述

如果一个正整数 \(x\) 满足 \(x = an + b (n \in \mathbb{N}^+)\)\(a, b\) 为给定的常数),则称 \(x\) 为「好数」。

如果一个「好数」不能被除了自己以外的任何「好数」整除,则称这个数为「很好数」。

你的任务是求出前 \(m\) 个「好数」中有多少个「很好数」。

思路

看到是要将所有的好数中是很好数的个数求出来,相当于筛掉一些非很好数。所以可以用类似于质数筛的筛法来解决这个问题。

设第 \(n\) 个「好数」为「很好数」,则这个数为 \(x = an + b\)。现在需要快速的在是好数的数中筛掉非很好数即筛掉 \(x\) 的倍数。

设第 \(n'\) 好数为非很好数且为 \(x\) 倍数,设 \(an' + b = x * k\) 其中 \(k\) 为整数。
\(x = an + b\) 代入式子中,得 $$an' + b = (an + b) * k$$

\[an' + b = an * k + b * k \]

\[n' = n * k + \frac{(k - 1)b}{a} \]

\(d = gcd(a, b)\),则 \(a = a'd\)\(b = b'd\),且 \((a', b') = 1\),再次代入式子可以发现

\[\frac{(k-1)b'd}{a'd} = \frac{(k-1)b'}{a'} \]

由于 \((a', b') = 1\),所以 \(a'\) 整除 \(k - 1\)

不妨设 \(j\) 使 \(a'j = k - 1\),所以 \(k = a'j + 1\),代入原式

\[n' = n * (a'j + 1) + \frac{a'j * b'}{a'} \]

\[n' = n * a'j + n + j * b' \]

\[n' = j(na' + b') + n \]

于是就可以枚举 \(j(1 \le j\ \&\ j * (na' + b') + n \le m)\),筛掉不合法的数了。

时间复杂度 \(O(n log n)\)

代码

#include <bits/stdc++.h>
using namespace std;const long long N = 10000010;
long long m, a, b;
bool vis[N];long long gcd(long long x, long long y) {if (y == 0) return x;return gcd(y, x % y);
}int main() {cin >> m >> a >> b;long long d = gcd(a, b);long long pa = a / d, pb = b / d, ans = 0;for (long long i = 1; i <= m; i++)if (!vis[i]) {ans++;long long x = pa * i + pb;for (long long j = 1; j * x + i <= m; j++)vis[j * x + i] = true;}cout << ans << endl;return 0;
}
http://www.zskr.cn/news/15168.html

相关文章:

  • 2025防火皮革厂家TOP企业品牌推荐排行榜,B1级防火皮革,建筑防火皮革,审讯室防火皮革,邮轮级防火皮革,软包防火皮革公司推荐
  • MySQL 全量 + 增量备份脚本(RPM 安装)实践与疑问解析
  • 2025磁选机厂家TOP企业品牌推荐排行榜,立环磁选机,高梯度磁选机,立环高梯度磁选机,油冷立环磁选机公司推荐
  • 2025最新编织袋生产厂家推荐排行榜:涵盖牛皮纸、塑料、PP 彩膜等品类,助力企业精准甄选可靠合作伙伴
  • 详细介绍:鸿蒙与iOS跨平台开发方案全解析
  • US$58 HU162T Clamp Work on VW SN-CP-JJ-16 Work with SEC-E9 Key Cutting Machine
  • 完整教程:Linux中安装es
  • 251003
  • 学习项目movie-web:构建本地电影、电视视频中心 - 教程
  • AT_abc205_e [ABC205E] White and Black Balls
  • Rust Slint库达成桌面萌宠源码分享(包含拖动、右键菜单效果)
  • Redis 持久化机制 - 教程
  • glazewm_windows平铺窗口管理器使用方法
  • 树莓派搭建NAS之三:使用OpenList挂载网盘
  • 数哈多应用授权系统如何为Go语言编程开发者给予知识产权保护?
  • 完整教程:华为eNSP环境安装和命令使用教程
  • 分布式架构初识:为什么需要分布式 - 教程
  • [IOI 1998 / USACO2.2] 派对灯 Party Lamps 题解 + bitset浅谈
  • 2025 --【J+S 二十连测】-- 第一套 总结
  • 【实验报告】华东理工大学随机信号处理实验报告 - 详解
  • Docker部署配置全流程(超详细——Windows和Linux) - 指南
  • AT_abc309_g [ABC309G] Ban Permutation
  • 在Mac上运行Windows 365的完整指南
  • 完整教程:华为海思正式进入Wi-Fi FEM赛道?
  • 摩刻S10 动感单车 速度传感器故障及更换!
  • 2025硫酸优质厂家权威推荐榜:高品质与强供应口碑之选
  • 2025冰乙酸供应厂家权威推荐榜:品质卓越与市场口碑双重保障
  • 工业氨水优质厂家推荐:实力制造商深度解析与选购指南
  • 2025液碱厂家权威推荐榜:实力供应商深度解析与选择指南
  • 2025硫铵厂家权威推荐榜:实力生产与优质供应口碑之选