Hey, Im currently trying(!) to make a sieve of eratosthenes in processing as a school project.
This is my code:
int max=1500; //maximale zahl für die Primzahlen berechnet werden sollen
int p=2; //
boolean[] prim; //array in dem die Primzahlen stehen
int[] fertige_primzahlen;
int f=0;
void setup() {
size(1000, 800);
background(255);
frameRate(20);
headline();
zeichnezahlen();
prim= new boolean[max];
fertige_primzahlen= new int[100];
init_zahlen();
}
void headline(){ //Zeichnet die Überschrift und den Text darunter
textSize(26);
fill(255, 140, 0);
text(“Sieb des Eratosthenes”,2,20);
textSize(10);
fill(150);
text(“Durch Drücken der N-Taste (next) kommt die nächste Vielfachreihe dran”,2,35);
}
void zeichnezahlen() { //draws the numbers
textSize(12);
fill(0,0,0);
for (int z=1; z<max; z++) {
if(prim[z]){ //markiert die Primzahlen in Rot
fill(255,0,0);
}
else {
fill(0,255,0);
}
text(z,((z-(z-1)/28*28)-1)35,20((z-1)/28)+50);
}
}
void init_zahlen(){ //setzt alle zahlen standartmäßig auf prim
for (int p=1;p<max;p++){
prim[p]=true;
}
}
void next_step(int v) {
for (int n=2;n<max/v;n++){
prim[v*n]=false;
}
}
void get_next_v(){
if (prim[p]) {
next_step§;
zeichnezahlen();
fertige_primzahlen[f]=p;
f++;
p++;
}
else{
p++;
draw();
}
}
void draw(){
if (keyPressed) {
if (key == ‘n’ || key == ‘N’) {
fill(255);
noStroke();
quad(360,10,380,30,500,30,500,10);
fill(0);
text(p,400,20);
get_next_v();
}
}
}
Im German so dont mind the names but I think everything should be understandable.
So my Problem is: Everytime I start the program nothing happens and Windows tells me that it crashed. I really dont know what I’ve made wrong