package page.example;

import java.io.IOException;

import org.wikiwebserver.handler.http.HTTPHandler;
import org.wikiwebserver.handler.http.interfaces.HTTPResponder;

public class Primes implements HTTPResponder {
	
    public Object respond(HTTPHandler conn) throws IOException {
        
        conn.getResponse().getHeaders().set("Content-Type", "text/html");
        // Don't use gzipping, it stalls most browsers
        conn.getResponse().getHeaders().set("Content-Encoding", "none"); 

        long startTime = System.currentTimeMillis();
        int numPrimes = 5000;
        
        int[] primes = new int[numPrimes];
        primes[0] = 2;
        primes[1] = 3;
        conn.getOutputStream().write(String.valueOf(primes[0]) + " ");
        conn.getOutputStream().write(String.valueOf(primes[1]) + " ");

        int test = 5;
        for (int i=2; i<primes.length;) {
            int j;
            for (j=0; j<i && test % primes[j] != 0; j++);
            if (j == i) {
                primes[i++] = test;
                conn.getOutputStream().write(String.valueOf(test) + " ");
            }
            test++;
        }
        long endTime = System.currentTimeMillis();
        
        conn.getOutputStream().write("<p>Elapsed time: " + (endTime - startTime) + " ms</p>");
        return null;
    }
}
