Zoek priemgetallen

Vragen en opmerkingen over Just BASIC en over RUNBASIC

Zoek priemgetallen

Berichtdoor hbh-tieltjes » di nov 11, 2008 7:42 pm

programeren met Justbasic lukt mij maar matig
hier onder een listing welke werkt met alle basic talen behave JB

for p=3 to 99 step 2
for x=3 to sqr(p) step 2
if p/x=int(p/x) then
goto [volgende]
else
end if
next x
print p
[volgende]
next p
end

ik wil alleen maar de priemgetallen op het scherm dus
indien mogelijk geen geheugen plaatsen DIM of array
b.v. for a=1 to 100:print a:next a :dit lukt weer wel hoe kan dat ???
wie maakt mij los ??? : vr gr herman tieltjes
hbh-tieltjes
 
Berichten: 53
Geregistreerd: di nov 11, 2008 11:44 am

Re: Zoek priemgetallen

Berichtdoor Gordon » di nov 11, 2008 10:06 pm

Hallo Herman,

Ik heb gemerkt dat je listing uit een for/next loop spring zonder
een exit for.

Code: Selecteer alles
for p=3 to 99 step 2
for x=3 to sqr(p) step 2
if p/x=int(p/x) then
'goto [volgende]
exit for
else
end if
next x
print p
[volgende]
next p
end



Is dit de bedoeing?

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Zoek priemgetallen

Berichtdoor hbh-tieltjes » wo nov 12, 2008 6:15 pm

helaas werkt dit ook niet ik krijg alle oneven getallen op het scherm
3,5,7,9,11,13,15,17,enz priemgetallen zijn alleen deelbaar door zichzelf en 1
heb libertybasic trial v.4.03 gedownload deze doet het zelfde als justbasic v1.01
krijg de getallen 3, 5 en 7 op het scherm voor de rest niets hoe kan dat ????
gr herman tieltjes
hbh-tieltjes
 
Berichten: 53
Geregistreerd: di nov 11, 2008 11:44 am

Re: Zoek priemgetallen

Berichtdoor Gordon » do nov 13, 2008 12:25 am

Hmmmm .....

Code: Selecteer alles
  ZoekenTotGetal = 100                          '** Of tot welke waarde dan ook **
       Dim Prime(ZoekenTotGetal)                           '** Effe Dimme **
       For I = 2 To ZoekenTotGetal
           Prime(I) = 1                                    '** Alles naar 1 **
           For J = 2 To ZoekenTotGetal
               If I Mod J = 0 And I <> J Then
                   Prime(I) = 0                            '** Geen Priem dan 0
               End If
           Next J
           If Prime(I) Then Print I                        '** Zet op je form wat 1 is **
       Next I


De bovenstaande listing komt uit de Wikipedia.
De regel p/x=int(p/x) geeft toch een deling zonder rest? Maar waarvoor dient de sqr() en de step 2?
De mod functie geeft de rest na deling?

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Zoek priemgetallen

Berichtdoor hbh-tieltjes » vr feb 27, 2009 6:05 pm

1e:Vraag wat is de max. grootte van een array B.V. Dim Priem(max).
Door uitproberen kwam ik op ongeveer 10.000.000 dus 8 cijfers voor max.
Omdat dit voor mij te weinig was ben ik gaan uitproberen om dit Dimmen te mijden.
Hier komt een programma dat goed werkt in JustBasic met 12 cijvers. Ook met meer of minder cijfers werkt het goed
Zorg altijd dat je met een oneven getal start ander ga je de mist in !!!!

Code: Selecteer alles
for priem=999999999901 to 999999999999  step 2  'alle priemgetallen zijn oneven behalve (2) daarom step 2
 for deler=3 to sqr(priem) step 2                                   'delen door oneven getallen en wortel is grootste deler
  if priem mod deler = 0 then exit for                            'is er een integere deling dan afbreken
 next deler                                                                  'volgende deling
  if priem mod deler = 0 then [GeenPriem]                    'is er een integere deling ga naar label
    print priem                                                             'geen integere deling dus priemgetal
  [GeenPriem]                                                             'label voor geen priemgetallen
next priem                                                                 'onderzoek volgend getal
 end                                                                           'einde programma

Mijn computer vond na 50 berekeningen 4 priemgetallen in 50 seconden.
Vraag 2 is dit een goed programma of kan het nog sneller of beter


Gewijzigd door anthonio: Code tussen tags gezet.
hbh-tieltjes
 
Berichten: 53
Geregistreerd: di nov 11, 2008 11:44 am

Re: Zoek priemgetallen

Berichtdoor anthonio » zo maart 01, 2009 9:33 pm

Beste hbh,

heb even je prog uitgetest en ik krijg dezelfde resultaten.

output console:

Code: Selecteer alles
21:23:51
999999999937
999999999959
999999999961
999999999989
21:24:44


Zoals je ziet, doet mijn pc er 53sec over.
Om dan op je vraag te antwoorden.
De code bestaat uit 11 lijnen, ik ben nu ook geen wiskunde krak maar ik betwijfel of je dit nog korter/sneller kan laten lopen.
We hebben het hier over getallen met 12cijfers.
Mooie listing alleszins.

Groeten.
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm


Keer terug naar Just BASIC en RUNBASIC

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron