Toon posts:

[Java] Priemgetallen

Pagina: 1
Acties:
  • 42 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik ben al een tijdje bezig met een goed algortime te zoeken om snel priemgetallen te berekenen en kwam bij volgende code die om de een of andere bizarre reden een ArrayIndexOutOfBoundsException geeft.

Mijn code (werkt niet):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Primes {
    public static void main(String [] args) {
        int primesRequired = 100;
        long [] primes = new long[primesRequired];
        primes[0] = 2;
        primes[1] = 3;
        
        int count = 2;
        long number = 5;
        
        outer:
        for (; count < primesRequired; number += 2) {
            long limit = (long) Math.ceil(Math.sqrt((double)number));
            inner:
            for (int i = 1; i < count && primes[i] <= limit; i++) {
                if (number % primes[i] == 0)
                    continue outer;
                primes[count] = number;
                ++count;
            }
        }
    } 
}

Weet er iemand wat deze fout veroorzaakt ?

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:28
De foutmelding zegt het zelf al, je gaat ergens buiten de grenzen van een array.

Om de oorzaak te vinden kan ik je maar één ding aanraden: debug die code. Er zijn genoeg IDE's voor Java die een goede debug-ondersteuning bieden (breakpoints, watches, etc...).

Verder vind ik die code wel ranzig, met die continue outer en inner

Het is echter niet de bedoeling dat je hier zomaar op GoT je code kunt posten, en dan hier zomaar vraagt wat de fout is, of wat de oorzaak kan zijn van die fout. Het is de bedoeling dat je zelf ook wat moeite doet om die fout te vinden, en dat kan je dus doen dmv debuggen.

https://fgheysels.github.io/


Dit topic is gesloten.