ABC 250 D
ABC 250 D
题意
求1到n范围内有以下性质的数的个数:
,其中p和q都是质数,.
思路
将内的质数筛出来,这就是q的范围,
然后这个q的贡献为以内的质数个数,但要注意可能比q还要大,这时候就只能选q以下的质数了。
代码
void get_prime()
{
for(int i=2;i<N;i++)
{
if(!is[i]) prime[++cnt]=i;
for(int j=1;j<=cnt&&i*prime[j]<N;j++)
{
is[i*prime[j]]=1;
if(i%prime[j]==0) break;
}
}
for(int i=2;i<N;i++) sum[i]=sum[i-1]+(is[i]==0);
}
int cal(int x) //三次方根
{
int i=1;
while(i*i*i<=n) i++;
return i-1;
}
void solve()
{
get_prime();
cin>>n;
int limit=cal(n);
for(int i=1;i<=cnt&&prime[i]<=limit;i++)
{
int k=prime[i]*prime[i]*prime[i];
int tmp=n/k;
tmp=min(prime[i]-1,tmp);
ans+=sum[tmp];
}
cout<<ans<<endl;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)