標籤:blog io for ar div amp c++ log
#include <stdio.h>#include <string.h>#define N 3000000int f[3000000];int main(){memset(f, 0, sizeof(f));int i, j;f[0]=1;f[1]=1;for(i=2; i<=N; i++){if(f[i]==0){for(j=i*2; j<=N; j+=i){f[j]=1; //不是素數}}} // 列印所有發f[i]==0, 即為素數for(i=2; i<=N; i++){if(f[i]==0)printf("%d ", i );}return 0;}
#include <stdio.h>#include <string.h>#include <math.h>#define N 3000000int c=0;int f[3000000];int prime[1000000];int main(){int i, j; memset(f, 0, sizeof(f));f[0]=1;f[1] =1;for(i=2; i<=N; i++){if(f[i]==0){prime[c++] = i;for(j=2*i; j<=N; j+=i ){f[j]=1;}}}for(i=0; i<=1000; i++){printf("%d ", prime[i] );}return 0;}
素數打表法二:
#include<stdio.h> #include<string.h> #define N 1000005int prime[100005]; int flag[1000005]; int e; void getP() // 素數打表,找出素數存棧 { int i, j; e = 0; memset(flag, 0, sizeof(flag) ); //標記初始化for ( i=2; i<N; i++) { if ( flag[i]==0 ) {prime[e++] = i; //進棧 }for ( j=0; j<e && i*prime[j]<N; j++ ) { flag[ i * prime[j] ] = 1; } } }