lint_iterator primes (){
    YIELDS(lint);
    YIELD(2);
    lint n = 3;
    while( n < max_lint - 2 ){
        YIELD(n);
        n += 2;
        while( n < max_lint - 2 && ! is_prime_cached(n) ){
            n += 2;
        }
    }
}
Beispiel #2
0
static void
primes_cached(unsigned long i, unsigned long n)
{
	unsigned long	*arr = NULL; /* Array of prime numbers */
	unsigned long	 count = 1;

	arr = reallocarray(arr, count, sizeof i);
	arr[count - 1] = 2;

	i = 3;

	while (n == 0 || count < n) {
		if (is_prime_cached(i, arr, count)) {
			printf("%lu\n", i);
			arr = reallocarray(arr, ++count, sizeof i);
			arr[count - 1] = i;
		}
		i += 2;
	}
}