fork download
  1. #include <stdio.h>
  2.  
  3. #define N 30
  4.  
  5. int p[N] = {2}, m[N] = {2}, k = 1;
  6.  
  7. void genprim(void) {
  8. for (int i = 1, j = 3; i < N; j += 2) {
  9. if (j == p[k] * p[k]) {
  10. m[k++] = j;
  11. goto np;
  12. }
  13.  
  14. for (int l = 1, ml = m[l], pl2 = p[l] * 2; l < k; ++l) {
  15. while (ml < j)
  16. ml += pl2;
  17. if (j == (m[l] = ml))
  18. goto np;
  19. }
  20.  
  21. p[i++] = j;
  22. np:;
  23. }
  24. }
  25.  
  26. int main(void) {
  27. genprim();
  28. for (int i = 0; i < N; ++i)
  29. printf("%d ", p[i]);
  30. puts("\n");
  31. return 0;
  32. }
  33.  
Success #stdin #stdout 0s 4532KB
stdin
Standard input is empty
stdout
2 3 5 7 11 13 17 19 23 29 31 35 37 41 43 47 53 55 59 61 65 67 71 73 77 79 83 85 89 91