fork(2) 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; ++i, j += 2) {
  9. if (j == m[k] * m[k]) {
  10. m[k++] = j;
  11. goto np;
  12. }
  13.  
  14. for (int i = 1, mi = m[i], pi2 = p[i] * 2; i < k; ++i) {
  15. while (mi < j)
  16. mi += pi2;
  17. if (j == (m[i] = mi))
  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. }
  31. puts("\n");
  32. return 0;
  33. }
  34.  
Success #stdin #stdout 0s 4416KB
stdin
Standard input is empty
stdout
2 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59