标题被影日收割了
模拟赛题
当一个正整数的质因子个数为质数时,它被称为 “质数中的质数”,现在给出
心路历程:
想单纯的记录质数,然后质因数分解(赛后回顾我好像发明了埃式筛)
哦,只能得10分
打表
浪费了很多时间,最后用不超过文件大小限制的代码得了 40 分
普遍的 80 分 :
线性筛扫一边
线性筛 :
void Prime(int n){
memset(isprime,1,sizeof(isprime));
isprime[1]=0;
for(int i=2;i<=n;i++){
if(isprime[i])prime[++cnt]=i;
for(int j=1;j<=cnt&&i*prime[j]<=n;j++){
isprime[i*prime[j]]=0;
if(i%prime[j]==0)break;
}
}
}
100分 :
每次枚举质数
复杂度
#include <bits/stdc++.h>
using namespace std;
const int N=31622;
int ys[1000006],cnt[1000006];
bool vis[N+2];
int main(){
int l,r;
cin>>l>>r;
for(int i=l;i<=r;i++){
ys[i-l]=i;
}
vis[0]=1;
vis[1]=1;
for(int i=2;i<=N;i++){
if(!vis[i]){
for(int j=(l+i-1)/i*i;j<=r;j+=i){
int k=ys[j-l];
while(k%i==0){
cnt[j-l]++;
k/=i;
}
ys[j-l]=k;
}
}
for(int p=i*2;p<=N;p+=i)vis[p]=1;
}
int ans=0;
for(int i=l;i<=r;i++){
if(ys[i-l]!=1)cnt[i-l]++;
if(!vis[cnt[i-l]])ans++;
}
cout<<ans;
return 0;
}
有一道题是一个套路
素数密度
给定
先筛出
为什么是
假设
就完了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】