Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[java] Priemgetallen uitrekenen niet 100%

Pagina: 1
Acties:
  • 981 views

  • XtremeFast93
  • Registratie: Juli 2010
  • Laatst online: 24-11 20:05
Hoi medetweakeraars,

ik heb een vraagje over een programma wat ik zelf heb geschreven (na 3 weken TI 1e jaar HBO), nou wilde ik een lijst met priemgetallen (alle getallen die alleen deelbaar zijn door 1 of door zichzelf) maken d.m.v. een Java script. Echter krijg ik er een aantal getallen tussen, die ondanks de if statement, er toch tussen staan.
Een voorbeeld:
Het getal 35 is o.a. geen priemgetal, maar wordt wel weergegeven in de lijst (35 / 5 = 7, dus geen priemgetal).

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
25
26
27
28
29
public void getPrimeNumbers()
    {
        int number;
        int i;
        number = 1;
        i = 1;
        while(number < 100)
        {
            if(i != 1 && number != 1 && number % i == 0 && number / i != 1)
            {
                number++;
            } 
            else if(i != 1 && number != 1 && number % i == 0 && number / i == 1)
            {   
                i = 1;
                System.out.println("Getal " + number + " is een priemgetal.");
                number++;
            } 
            else if(i < number)
            {
                //System.out.println(i);
                i++;
            } 
            else
            {
                number++;
            }
        }
    }

Deze bovengenoemde code geeft als uitkomst:
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
25
26
27
28
29
Getal 2 is een priemgetal.
Getal 3 is een priemgetal.
Getal 5 is een priemgetal.
Getal 7 is een priemgetal.
Getal 11 is een priemgetal.
Getal 13 is een priemgetal.
Getal 17 is een priemgetal.
Getal 19 is een priemgetal.
Getal 23 is een priemgetal.
>> Getal 27 is een priemgetal.
Getal 29 is een priemgetal.
Getal 31 is een priemgetal.
>> Getal 35 is een priemgetal.
Getal 37 is een priemgetal.
Getal 41 is een priemgetal.
Getal 43 is een priemgetal.
Getal 47 is een priemgetal.
Getal 53 is een priemgetal.
Getal 59 is een priemgetal.
Getal 61 is een priemgetal.
Getal 67 is een priemgetal.
Getal 71 is een priemgetal.
Getal 73 is een priemgetal.
Getal 79 is een priemgetal.
Getal 83 is een priemgetal.
>> Getal 87 is een priemgetal.
Getal 89 is een priemgetal.
>> Getal 95 is een priemgetal.
Getal 97 is een priemgetal.

De aangegeven getallen zijn GEEN priemgetallen, maar worden wel aangegeven in de lijst.
Kan iemand mij hierbij helpen?

Alvast bedankt.

  • Onbekend
  • Registratie: Juni 2005
  • Nu online

Onbekend

...

Volgens mij heb je 2 while loopjes nodig.
1 loopje is zoals jouw huidige loopje en het 2e loopje moet alle priemgetallen t/m het huidige getal -1 doorlopen.

Speel ook Balls Connect en Repeat


  • XtremeFast93
  • Registratie: Juli 2010
  • Laatst online: 24-11 20:05
Ik zat zelf ook al aan 2 while loops te denken, maar dan is de vraag nog altijd, wat gaat hier dan fout in mijn script?

  • Onbekend
  • Registratie: Juni 2005
  • Nu online

Onbekend

...

Je kan zelf makkelijk debuggen door de variable i vóór het einde van de while loop in het scherm te tonen.
Dan zie je vanzelf wel waar het fout gaat.

Speel ook Balls Connect en Repeat


  • Tharulerz
  • Registratie: April 2009
  • Laatst online: 10-04 05:16
Dit is java, niet java script.

Best even het verschil opzoeken voordat je je belachelijk maakt in je volgende les.

  • XtremeFast93
  • Registratie: Juli 2010
  • Laatst online: 24-11 20:05
Onbekend schreef op maandag 13 september 2010 @ 19:02:
Je kan zelf makkelijk debuggen door de variable i vóór het einde van de while loop in het scherm te tonen.
Dan zie je vanzelf wel waar het fout gaat.
Dankje! Ik zie het probleem al, nou alleen nog oplossen :9

  • XtremeFast93
  • Registratie: Juli 2010
  • Laatst online: 24-11 20:05
Tharulerz schreef op maandag 13 september 2010 @ 19:04:
Dit is java, niet java script.

Best even het verschil opzoeken voordat je je belachelijk maakt in je volgende les.
Normaal wijs ik hier mensen ook op, maar het was gewoon snel getypt ;)

EDIT:
slotje graag

[ Voor 3% gewijzigd door XtremeFast93 op 13-09-2010 19:06 ]


  • Nick_S
  • Registratie: Juni 2003
  • Nu online

Nick_S

++?????++ Out of Cheese Error

Inderdaad, met i debuggen, het probleem zit in het ophogen van number maar i niet resetten.
number = 34, i = 8 -> number++, maar i nog steeds 8.
number=35, i = 7 wordt niet meer gevonden.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • T020
  • Registratie: Juli 2007
  • Laatst online: 26-11 03:27
nog een paar leuke tips omwille van de efficientie, handig als je veel getallen gaat uitrekenen:
behalve 2 zijn alle even getallen geen priemgetallen, je kan dus vanaf 3 zowel number als i telkens met 2 ophogen i.p.v. met 1
ook hoef je niet i op te hogen tot aan number, maar tot en met wortel van number

  • XtremeFast93
  • Registratie: Juli 2010
  • Laatst online: 24-11 20:05
Nick_S schreef op maandag 13 september 2010 @ 19:11:
Inderdaad, met i debuggen, het probleem zit in het ophogen van number maar i niet resetten.
number = 34, i = 8 -> number++, maar i nog steeds 8.
number=35, i = 7 wordt niet meer gevonden.
Klopt, dit zag ik dus ook toen ik met i ging debuggen. Het is nu opgelost en het werkt zoals ik het had gehoopt :)
T020 schreef op maandag 13 september 2010 @ 19:15:
nog een paar leuke tips omwille van de efficientie, handig als je veel getallen gaat uitrekenen:
behalve 2 zijn alle even getallen geen priemgetallen, je kan dus vanaf 3 zowel number als i telkens met 2 ophogen i.p.v. met 1
ook hoef je niet i op te hogen tot aan number, maar tot en met wortel van number
Bedankt voor de tip!

[ Voor 32% gewijzigd door XtremeFast93 op 13-09-2010 19:18 ]


  • MueR
  • Registratie: Januari 2004
  • Laatst online: 12:23

MueR

Admin Devschuur® & Discord

is niet lief

Anyone who gets in between me and my morning coffee should be insecure.


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 13:40

Robtimus

me Robtimus no like you

Laat nummer en i allebei beginnen met 2, dan ben je al die nare != 1 checks kwijt.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:10

Creepy

Tactical Espionage Splatterer

En toch gaat ie alsnog dicht. Vanwege de volgende redenen:

- Java en Javascript zijn twee verschillende dingen.
- Debuggen zul je in eerste instantie zelf moeten doen voordat je een topic opent. Je code dumpen en wachten op een oplossing is eigenlijk niet de bedoeling, maar dat doe je nu wel.

Dus let daar aub de volgende keer op.

[ Voor 11% gewijzigd door Creepy op 13-09-2010 20:52 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.