社区讨论

qp

P5736【深基7.例2】质数筛参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mkrt2ric
此快照首次捕获于
2026/01/24 12:24
4 周前
此快照最后确认于
2026/01/24 12:26
4 周前
查看原帖
题目给了:n < 100
所以可以用O根号n的写法 这种算法可处理个数少但体积大的数
CPP
int ch1(int x){//枚举质数
for(int i = 2;i*i<=x;i++){
		if(x % i == 0){
			return 0;
		}
	}
	return x > 1;
// 0,1不是质数 } 在这里明确一个概念: 1、n/1+n/2+n/3+......n/n的时间复杂度是O(n log n) 这种算法可处理个数多但体积小的数,(我用过8e6的)。
CPP
const int N = 1e6 + 10;///枚举因数
int ansp[N];
for(int i = 2;i<=N;i++){
  if(ansp[i] == 0){
    for(int j = 2*i;j<=N;j+=i){
      ansp[j] = 1;
    }
  }
}
//时复 O( n log n)。
这里比较推荐第二种。

回复

1 条回复,欢迎继续交流。

正在加载回复...