Ben bezig met een programma dat mersenne priem getallen berekend, nou werkt dit op zich al best goed, de eerste 9 lukken (na even rekenen
)
een mersenne priemgetal, is een priemgetal dat voldoet aan de volgende regel:
2^<<priemgetal>>-1 = <<een willekeurige ander priemgetal>>
Maar nou zit ik met een probleem, zoals ik al zei tot 9 werkt het prima, in de parameter van de functie geef ik het aantal mee dat ie moet gaan berekenen, bij bijv. 5 gaat dit prima, echter geef ik 10 mee dan klapt ie er na de 9 uit
Heb al lopen debuggen, maar kan niet vinden waar de fout nou zit
Dit is de functie die dus een set met mersenne priemgetallen terug moet gaan geven, de set priemgetallen word goed aangeleverd. Alles lijkt ook goed te gaan tot die 10e dus, dan stopt het programma er direct mee, ik weet even niet waar ik het nog moet zoeken, iemand
een mersenne priemgetal, is een priemgetal dat voldoet aan de volgende regel:
2^<<priemgetal>>-1 = <<een willekeurige ander priemgetal>>
Maar nou zit ik met een probleem, zoals ik al zei tot 9 werkt het prima, in de parameter van de functie geef ik het aantal mee dat ie moet gaan berekenen, bij bijv. 5 gaat dit prima, echter geef ik 10 mee dan klapt ie er na de 9 uit
Heb al lopen debuggen, maar kan niet vinden waar de fout nou zit
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| public Set mersennePriemGetallen(int aantal){
Set priemGetallen = new HashSet();
Set mersenne = new HashSet();
priemGetallen = berekenPriem(aantal*20);
Iterator i = priemGetallen.iterator();
int aantalGevonden = 0;
long uitkomst = 0;
while (i.hasNext() && aantalGevonden < aantal){
int priem = ((Integer)i.next()).intValue(); //haal volgende uit set
uitkomst = (long)(Math.pow(2, priem) - 1); //bereken 2^n-1
Integer integer = new Integer(priem); //maak een integer
if (isPriem(uitkomst)){ //kijk of uitkomst een priemgetal is
System.out.println(priem); //om te testen
mersenne.add(integer); //voeg toe aan nieuwe set
aantalGevonden++; //hoog gevonden aantal op
}
}
return mersenne;
} |
Dit is de functie die dus een set met mersenne priemgetallen terug moet gaan geven, de set priemgetallen word goed aangeleverd. Alles lijkt ook goed te gaan tot die 10e dus, dan stopt het programma er direct mee, ik weet even niet waar ik het nog moet zoeken, iemand