#include<stdio.h>#include<string.h>#definemaxn 1000000intisprime[maxn+10];intprime[maxn/10];intcount;intn;intmain() {while(scanf("%d",&n)!=EOF) { count=0;for(inti=0;i<=maxn+10;i++) isprime[i]=0;for(inti=2; i<=n; i++) {if(isprime[i]==0) { prime[count++]=i;fo...
1/* 2线性时间求出1-N 的素数 , 时间复杂度为O( N) ; 3一个合数可以表示成若干个素数的积 4比如说 i = 6 =2 * 3 , A = p1 * p2 * p3 .. * pn , 其中pi为素数 ,p1最小 , 只筛到p1 * i即可 5我们只筛 最小的 2 * i 不筛3 * i ; 6*/ 7#include <stdio.h> 8#include <...
埃式筛法尽管不错,但是确实做了许多无用功,某个数可能会被重复的筛好几次,欧拉筛解决了这个方法,下面为代码: 注意理解if(i%prim[j]==0) break; 大佬讲的不错的博客,我就不做复读机了。 点我传送 void ispirm(){ int cnt=0; memset(visited,true,sizeof(visited)); for(int i=2;i<=maxn;i++)...