[informatica] programmeren in java met bluej

Moderators: ArcherBarry, Fuzzwood

Reageer
Gebruikersavatar
Berichten: 689

[informatica] programmeren in java met bluej

De opgave luidt als volgt:
Oefening 4.18

Schrijf een methode 'prime(int n)' die 'Waar' retourneert als de parameter een priemgetal is, en 'Niet waar' retourneert als de parameter n geen priemgetal is. Om de methode te implementeren kun je een while-lus schrijven die n deelt door alle gehele getallen tussen 2 en (n-1) en test of de deling een geheel getal oplevert. Je kunt deze test schrijven door gebruik te maken van de modulo operator (%) om te controleren of de integerdeling een rest 0 oplevert.
Dus ik schreef:

Code: Selecteer alles

public boolean prime(int n)

{

int a = 2;

boolean b = false;

while(a <= (n - 1)) {

while(((n % a) != 0 )) {

b = true;

}

a++;

}

return b;

}
Nu blijkt dat niet te werken. Kan iemand me misschien helpen?

Denis
"Her face shown like the sun that I strived to reach."

Gebruikersavatar
Berichten: 689

Re: [informatica] programmeren in java met bluej

Edit: nu programmeerde ik al het volgende, maar blijkbaar retourneren alle oneven getallen nu nog de waarde 'true'...

Code: Selecteer alles

public boolean prime(int n)

{

int a = 2;

boolean b = false;

while((a <= (n - 1)) && ((n % a) != 0 ) && !((n % a) == 0)) {

b = true;

a += 1;

}

return b;

}
"Her face shown like the sun that I strived to reach."

Gebruikersavatar
Berichten: 689

Re: [informatica] programmeren in java met bluej

Mijn excuses voor het aanmaken van dit topic, ik vond het antwoord al. Niet zo moeilijk eigenlijk als je er achteraf naar kijkt, en toch staarde ik me er eerst zot op... :D

Code: Selecteer alles

public boolean prime(int n)

{

int a = 2;

boolean priemgetal = true;

while(a <= (n - 1)) {

if((n % a) == 0) {

priemgetal = false;

}

a += 1;

}

return priemgetal;

}
"Her face shown like the sun that I strived to reach."

Reageer