题意
Sol
min25筛的板子题,直接筛出\\(g(N, \\infty)\\)即可
筛的时候有很多trick,比如只存\\(\\frac{N}{x}\\)的值,第二维可以滚动数组滚动掉
#include<bits/stdc++.h>
#define LL long long
//#define int long long
using namespace std;
const int MAXN = 2e6 + 10;
int Lim, vis[MAXN], prime[MAXN], tot;
LL N, g[MAXN], id[MAXN], cnt, pos1[MAXN], pos2[MAXN];
void Get(int N) {
vis[1] = 1;
for(int i = 2; i <= N; i++) {
if(!vis[i]) prime[++tot] = i;
for(int j = 1; j <= tot && i * prime[j] <= N; j++) {
vis[i * prime[j]] = 1;
if(!(i % prime[j])) break;
}
}
}
LL get(LL x) {
return x <= Lim ? pos1[x] : pos2[N / x];
}
signed main() {
cin >> N; Lim = sqrt(N);
Get(Lim);
for(LL i = 1, j; i <= N; i = N / j + 1) {
j = N / i; id[++cnt] = j; g[cnt] = id[cnt] - 1;
j <= Lim ? pos1[j] = cnt : pos2[N / j] = cnt;;
}
for(int j = 1; j <= tot; j++)
for(LL i = 1; 1ll * prime[j] * prime[j] <= id[i]; i++)
g[i] -= g[get(id[i] / prime[j])] - (j - 1);
cout << g[1];
return 0;
}
继续阅读与本文标签相同的文章
下一篇 :
Python循环控制之for
-
汇编(一) 汇编语言CPU、存储器、指令等概念
2026-05-19栏目: 教程
-
Github开源项目:Tamboot Cloud Admin一个基于spring cloud的微服务脚手架项目
2026-05-19栏目: 教程
-
Docker容器实战(三) - Docker的自我重新定位
2026-05-19栏目: 教程
-
阿里云注册域名使用教程
2026-05-19栏目: 教程
-
Docker容器实战(四) - 纷纷扰扰,终归尘土
2026-05-19栏目: 教程
