OpenCores
URL https://opencores.org/ocsvn/raptor64/raptor64/trunk

Subversion Repositories raptor64

[/] [raptor64/] [trunk/] [software/] [sample code/] [seive.c] - Blame information for rev 39

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 39 robfinch
#include <stdio.h>
2
 
3
#define LIMIT 1500000 /*size of integers array*/
4
#define PRIMES 100000 /*size of primes array*/
5
 
6
int main(){
7
    int i,j,numbers[LIMIT];
8
    int primes[PRIMES];
9
        int limit;
10
 
11
        limit=LIMIT;
12
 
13
    /*fill the array with natural numbers*/
14
    for (i=0;i<limit;i++){
15
        numbers[i]=i+2;
16
    }
17
 
18
    /*sieve the non-primes*/
19
    for (i=0;i<limit;i++){
20
        if (numbers[i]!=-1){
21
            for (j=2*numbers[i]-2;j<limit;j+=numbers[i])
22
                numbers[j]=-1;
23
        }
24
    }
25
 
26
    /*transfer the primes to their own array*/
27
    j = 0;
28
    for (i=0;i<limit&&j<primes;i++)
29
        if (numbers[i]!=-1)
30
            primes[j++] = numbers[i];
31
 
32
    /*print*/
33
    for (i=0;i<PRIMES;i++)
34
        printf("%d\n",primes[i]);
35
 
36
return 0;
37
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.