Gå til innhold
🎄🎅❄️God Jul og Godt Nyttår fra alle oss i Diskusjon.no ×

Primtalltelletråden - Den hypermoderne telletråden


dronjom

Anbefalte innlegg

Videoannonse
Annonse
  • 2 uker senere...

1151

 

Tips: Jeg har ikke lest gjennom hele tråden, så jeg vet ikke om dette har vært bragt opp før, men husk at et tall ikke kan ha primtallfaktorer høyere enn roten av seg selv. Eksempelvis kan ikke tallet 81 ha høyere primtallsfaktorer enn 9.

Dvs. at dersom du sjekker "brute force" for hvert tall om tallet er primtall ved å se om det har faktorer andre enn seg selv og 0, trenger du ikke å sjekke lenger opp enn roten av tallet.

 

Tallet 10003 er et primtall, og det kan du finne ut ved å sjekke for alle tall opp til 317 [=10003^(1/2)] om 10003 er delelig på tallet. Hvis 10003 ikke er delelig på noen av tallene opp til 317, er det et primtall (og det er det).

Dette er nok fremdeles en langdryg metode å bruke dersom du ikke kan noen programmeringsspråk ;)

Lenke til kommentar

Klart, jeg mente åpenbart 1 og ikke 0 :)

Og det er sant at man kun trenger å sjekke mot andre primtall, det er helt klart mer effektivt om du skal "brute force" manuelt. Like fullt stemmer det at du ikke trenger å sjekke faktorer høyere enn roten av tallet.

Imidlertid kan det kreve endel operasjoner å beregne og holde styr på endel primtall, men du vil trolig spare endel operasjoner på å kun betrakte primtallene opp til roten av tallet.

For de av dere som kan Java (eller lignende) har jeg skrevet en kort kode som beregner neste primtall her. (edit: det er selvsagt en liten feil her, slik det står nå vil programmet returnere det samme tallet som puttes inn såfremt dette faktisk er et primtall)

 

Mulig jeg lager et php-script senere som gjør det samme for dem som ikke ønsker å sette seg inn i noe programmeringsspråk ;)

Endret av srbz
Lenke til kommentar

Yes, da har jeg laget et PHP-script slik jeg sa, det finner du her. Skriv inn et hvilket som helst positivt heltall (innenfor rammene PHP takler, som jeg mener er max 2^31 eller 2^32), og du får ut den neste heltallet som er et primtall.

 

1171

Endret av srbz
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...