Hades logoHades applet banner
Mips R3051: prime numbers (1024 elements)

applet icon

The image above shows a thumbnail of the interactive Java applet embedded into this page. Unfortunately, your browser is not Java-aware or Java is disabled in the browser preferences. To start the applet, please enable Java and reload this page. (You might have to restart the browser.)

Circuit Description

This applet demonstrates yet another simple algorithm to calculate prime numbers. Detected prime numbers are stored in an array starting at program address 0x00000400, corresponding to memory component address 0x0100.

FIXME: This needs to be updated. Sorry.

#include "initcode.h"

void prim(int max, int startadr)
{
  int prim, teiler, *adr, teilt;
  
  adr = (void*) startadr;
  *adr = 2;

  for (prim = 3; prim < max; prim += 2) {
    teiler = 3;
    teilt = 0;
    while (teiler * teiler <= prim) {
      if (prim % teiler == 0) {
        teilt = 1;
        teiler = prim;
      } else {
        teiler += 2;
      }
    }
    if (teilt == 0) {
      adr++;
      *adr = prim;
    }
  }
}

void waitloop( void ) {
  int i, *ptr;
  ptr = (void*) (0x0400 - 32);
  for( i=0;; i++ ) {
    *(ptr) = i;
  }
}

int main(void)
{
  prim(0x400, 0x400);
  waitloop();
}
    

Print version | Run this demo in the Hades editor (via Java WebStart)
Usage | FAQ | About | License | Feedback | Tutorial (PDF) | Referenzkarte (PDF, in German)
Impressum http://tams.informatik.uni-hamburg.de/applets/hades/webdemos/76-mips/65-prim/prim.html