素数打表法
素数打表法适合求一个区间内素数的范围,防止超时
#include <stdio.h> #include <stdlib.h> int main() { int a[10000+100]; for(int i=0;i<=10100;i++) { a[i]=1;//将每个数都标为1 } for(int i=2;i*i<=10100;i++) { for(int j=i+i;j<=10100;j+=i) { a[j]=0;//素数倍数的数不是素数 } } int k=1; for(int i=2;i<=10100;i++) { if(a[i]==1) { s[k]=i; k++; } } int n; scanf("%d",&n); for(int i=1;s[i]<=n;i++) { printf("%d\t",s[i]); } return 0; }