跟素数筛有相似处
另外:不要用while(cin>>n),会导致TLE(orz)
#include<iostream>
#include<cmath>
#define maxn 1000005
using namespace std;
int flag[maxn];
void prepare(){
int k=1;
for(int i=2;i<maxn;i++){
if(flag[i]==0){
for(int j=1;j*i<maxn;j++){
flag[i*j]=k;
}
k++;
}
}
}
int main(){
int n;
prepare();
while(scanf("%d",&n)!=EOF){
cout<<flag[n]<<endl;
}
return 0;
}
本文介绍了一种类似于素数筛的算法实现,用于处理数学问题。通过预处理方式标记所有整数的特性,该算法能在运行时快速响应查询,避免了重复计算。注意,文中特别指出使用while(cin>>n)会导致超时,应予以避免。
623

被折叠的 条评论
为什么被折叠?



