Advertisement
dtung

sieve.c

Apr 11th, 2020
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.67 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3.  
  4. void sieve(int n, bool primes[]);
  5.  
  6. int main() {
  7.     int n;
  8.     printf("Enter the maximum number ");
  9.     scanf("%d", &n);
  10.     printf("Prime numbers are: ");
  11.     bool primes[n+1];
  12.     // initalize truth table of primes, index 0, 1 is not used
  13.     for (int i = 2; i <= n; i++)
  14.         primes[i] = true;
  15.     sieve(n, primes);
  16.     for (int i = 2; i <= n; i++)
  17.         if (primes[i])
  18.             printf("%d ", i);
  19.     printf("\n");
  20.     return 0;
  21. }
  22.  
  23. void sieve(int n, bool primes[]) {
  24.     for (int i = 2; i <= n; i++) {
  25.         if (primes[i])
  26.             for (int j=2*i; j <= n; j+=i)
  27.                 primes[j] = false;
  28.     }
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement