- 74 名前:デフォルトの名無しさん [02/04/19 09:11]
- 超高速素数列挙
#include<stdio.h> #include<stdlib.h> #include<math.h> void main(int argc, char *argv[]){unsigned long max, q, r; if(argc!=2){return;}else{max=atoi(argv[1]);}char *P=new char[max]; for(q=3; q<sqrt(max); q+=2){if(P[q]!=1){for(r=q*q; r<max; r+=q+q){P[r]=1;}}} printf("2\n");for(q=3; q<max; q+=2){if(P[q]!=1){printf("%u\n", q);}}} 誰でもできるか…しかもちょっとズルしてるし
|

|