Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Husk at et primtall er et tall som bare kan deles på 1 og seg selv. Hvordan kan vi bruke koden ovenfor til å finne ut programmere en algoritme som sjekker om et tall er et primtall? Prøv koden med noen tall som du vet er primtall, og noen som ikke er primtallEt forslag til løsning i python står nedenfor. Det er som vanlig mange måter å lage en slik algoritme på og en må ikke bruke et flagg som i denne løsninga. 

Momenter som kan være greie å tenke over her er ellers at vi har brukt en dum algoritme, den sjekker alle tall opp til tallet vi skal primtallsjekke. Det er jo ikke nødvendig, men vi slipper da å importerer kvadratkommandoen fra math-biblioteket. Didaktisk er det også et poeng om en skal fokusere på at denne algoritmen skal være så effektiv som mulig eller om den skal få jobben gjort og kanskje være lettere å skjønne.

# Program tosom checksjekker ifom aet numbertall iser primeprimtall oreller notikke
num
tall = 29 #vi kan droppe denne viss vi vil, men den bør stå om vi ikke lar brukeren skrive inn tall i input-linja nedenfor.

# ToVi lar takebrukeren inputskrive frominn theet usertall:
#numtall = int(input("EnterSkriv inn aet numberheltall: "))

# definedefinerer aet flag variableflagg
flagflagg = False

if numtall == 1:
    print(numtall, "iser notikke a prime numberet primtall.")
elif numtall > 1:
    # check for factors
  sjekker om vi finner faktorer i tallet
  for i in range(2, numtall):
        if (numtall % i) == 0:
            # if factor is found, set flag to True
  om resten ved divisjon er null er dette en faktor og vi heiser flagget
          flagflagg = True
            # breakhopp outut ofav loopløkka
            break
 
  # checksjekker ifom flagflagget iser True
    if flagflagg:
        print(numtall, "iser notikke a prime numberet primtall.")
    else:
        print(numtall, "iser a prime numberet primtall.")