TJ-CF1423K
首先,我们假设
则
则是
分类讨论:
-
为最大值由于
都为正整数,也就是说只要 就有可能的一组 -
为最大值若
,则只要 即可,也就是说要 不互质。 -
,则 ,只要 不互质即可。
那么,当
显然是质数时,也就是说,合数一定不会是孤独数字
接下来单独考虑质数的情况,设
则
-
为最大值则
, ,矛盾。 -
为最大值则
, ,矛盾。 -
显然满足
。此时 ,只有在 时成立。
设
代码:
#include<bits/stdc++.h> #define ll long long using namespace std; const int N=1e6+6; bool vis[N]; int prime[N],cnt; int sum[N]; inline void work(){ for(int i=2;i<N;i++){ if(!vis[i]){ prime[++cnt]=i; sum[i]=1; } for(int j=1;j<=cnt&&prime[j]*i<N;j++){ vis[i*prime[j]]=1; if(i%prime[j]==0) break; } } for(int i=1;i<N;i++) sum[i]+=sum[i-1]; } int main(){ work(); int T,n; scanf("%d",&T); while(T--){ scanf("%d",&n); printf("%d\n",sum[n]-sum[(int)sqrt(n)]+1); } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】