1004
思路:求最小质因子,质数个数
官方题解
随便推导下, 令y=xd, 如果d是y的maximum positive proper divisor, 显然要求x是y的最小质因子. 令mp(n)表示n的最小质因子, 那么就有x≤mp(d), 同时有y < n, 那么x≤⌊(n−1)/d⌋. 于是就是计算有多少个素数x满足x≤min{ mp(d),⌊(n−1)/d⌋}.
当d比较大的时候,⌊(n−1)/d⌋比较小, 暴力枚举x即可. 当d比较小的时候, 可以直接预处理出答案. 阈值设置到10^6∼10^7都可以过.
ranklist 1的代码
1 // #pragma comment(linker, "/STACK:102c000000,102c000000") 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include