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

P3601 签到题

// 容易注意到 qiandao(i) = i - phi(i)
// phi 是欧拉函数// 让我们想起最开始求欧拉函数的做法
// 分解质因数, 然后使用 phi(x) = x * 求积_{p in {x 的所有质因数}} (1 - 1 / p)
// 这样的时间复杂度显然过大// 我们何妨不反着思考
// 既然找到 l <= x <= r 的所有质因子不行, 不如考虑一个质因子是哪些 l <= x <= r 的质因子#include <iostream>
#include <vector>
using namespace std;
template <typename T>
using vec = vector<T>;#define int long longconst int N = 1e6 + 10;
vec<int> primes;
bool not_prime[N];// 线性筛模板
void get_primes(int n) {for (int i = 2; i <= n; i ++) {if (!not_prime[i]) {primes.push_back(i);}for (int j : primes) {if (i * j > n) break;not_prime[i * j] = true;if (i % j == 0) {break;}}}
}const int mod = 666623333;int l, r;vec<int> _pfactors[N];// 方便写代码的映射
// pfactors(i) 为 i 的质因子们
#define pfactors(i) _pfactors[(i) - l]signed main() {get_primes(N - 5);cin >> l >> r;// 我们可以遍历所有质数 p < sqrt r// 这里直接遍历所有 p < sqrt(r 的最大值) 了, 没差// 为什么是 p < sqrt(r)?// 对于一个数 x, 它的质因子中最多只会有一个大于 sqrt x// 这个质因子可以由 x 除以所有其他质因子得到// 可以想想分解质因数模板中为什么只用遍历到 sqrt x, 一个道理for (int p : primes) {// i 为 p 的 >= l 且 <= r 的倍数, 思想类似埃氏筛for (int i = ((l - 1) / p + 1) * p; i <= r; i += p) {pfactors(i).push_back(p);}}int ans = 0;for (int i = l; i <= r; i ++) {// 下面一段就是分解质因数, 只不过原本是遍历所有 <= sqrt x// 这里直接用提前求出来的 pfactorsint phi = i, x = i;for (int p : pfactors(i)) {phi = phi / p * (p - 1);while (x % p == 0) x /= p;}// 唯一一个大于 > sqrt(x) 的因子, 和分解质因数模板一样if (x != 1) phi = phi / x * (x - 1);ans = (ans + i - phi) % mod;}cout << ans;return 0;
}
http://www.rkmt.cn/news/25407.html

相关文章:

  • [Ubuntu]在windows系统上下载chrome browser .deb 文件
  • 2025年机械加工厂家推荐排行榜,钣金加工,焊接件加工,零件加工,天文台圆顶加工,非标自动化设备加工设计,精密钣金加工,精密零件加工,金属加工公司推荐
  • A3979
  • 2025 年防撞护栏生产厂家最新推荐排行榜:聚焦铝合金 / Q235/Q355B 桥梁等多类型护栏,精选优质企业
  • AtCoder AGC047 总结
  • Winform开发报表(锐浪推方式)
  • 详细介绍:《掰开揉碎讲编程-短篇》 2025 汉化idea控制台出现乱码解决方案 看完这篇解决不了乱码也是神人了
  • 多晶硅
  • Qt 解决 ld: framework ‘AGL‘ not found
  • 2025年地坪厂家权威推荐榜:环氧地坪漆,聚氨酯地坪,固化耐磨地坪,防腐地坪,室外路面防滑地坪,运动地面,PVC塑胶地板,魔石地坪公司精选
  • 结对项目—小学四则运算题目生成器
  • 阅读笔记一:程序员的自我定位与成长基石
  • SQL 子查询与多表 JOIN 用法大全(速查版) - 实践
  • 2025年CNC高压清洗机厂家推荐排行榜:CNC全自动/数控高压清洗机、双工位/卧式清洗机、去毛刺/螺纹孔清洗机、工业/欧洲清洗机精选
  • 2025 年国内锅炉厂家最新推荐排行榜:聚焦智能控制与稳定可靠的品牌深度解析电/蒸汽/燃气/燃油/电蒸汽锅炉公司推荐
  • 2025 年食品级润滑油脂厂家最新推荐榜单:聚焦纳米材料技术突破,甄选核心竞争力突出的企业
  • 七大排序算法的基本原理 - 教程
  • LVDS硬件知识 - 指南
  • 2025 年仿石漆厂家最新推荐榜,技术实力与市场口碑深度解析,精选优质企业助力选购水包砂/冠晶石/外墙/多彩/批刮仿石漆厂家推荐
  • wsl连接 USB 设备
  • 完整教程:轻量服务器创建mysql,并配置远程连接
  • 如何系统化掌握 iOS 26 App 耗电管理,多工具协作
  • 2025 年冷库板厂家最新推荐榜:前五优质生产商盘点,含聚氨酯 / 保温 / 阻燃板企业选购指南 聚氨酯夹心板/聚氨酯保温板厂家推荐
  • 2025 年 MacBook / 苹果电脑清理应用程序最新推荐榜单:精选适配 macOS 系统的高性能系统优化工具
  • 2025 生物质颗粒机厂家推荐榜:聚焦高效环保,山东博力达机械成优选​
  • .NET驾驭Word之力:基于规则自动生成及排版Word文档
  • 2025年液压阀块厂家权威推荐榜:液压阀块加工、阀块零件机加工、液压阀加工、各种液压阀块专业制造商深度解析
  • rust如何查看和修改当前编译器版本
  • 2025 年最新推荐!国内污水处理设备优质厂家排行榜,助力企业精准选靠谱设备
  • 基于OpenGL实现三维树木生长动画的解决方案