// ************************************************************************** // // // // eses eses // // eses eses // // eses eseses esesese eses Embedded Systems Group // // ese ese ese ese ese // // ese eseseses eseseses ese Department of Computer Science // // eses eses ese eses // // eses eseses eseseses eses University of Kaiserslautern // // eses eses // // // // ************************************************************************** // // The famous sieve of Eratosthenes to compute prime numbers. The sieve removes // all multiples of numbers already known as prime numbers. // ************************************************************************** // [50]bool prime; thread Eratosthenes { nat i,j,n; n = 50; // initialize the array so that all numbers >=2 are primes at first for(i=2..n-1) prime[i] = true; // start with prime number 2 i = 2; while(i<n) { // remove multiples of i if i is a prime number if(prime[i]) { j = i * i; // note that smaller multiples were already removed while(j < n) { prime[j] = false; j = j + i; } } // check the next number i = i + 1; } }