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 programmere en algoritme som sjekker om et tall er et primtall? Et 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 som sjekker om et tall er primtall eller ikke

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.

# Vi lar brukeren skrive inn et tall:
tall = int(input("Skriv inn et heltall: "))

# definerer et flagg
flagg = False

if tall == 1:
  print(tall, "er ikke et primtall.")
elif tall > 1:
  # sjekker om vi finner faktorer i tallet
  for i in range(2, tall):
      if (tall % i) == 0:
          # om resten ved divisjon er null er dette en faktor og vi heiser flagget
          flagg = True
          # hopp ut av løkka
            break

  # sjekker om flagget er True
  if flagg:
      print(tall, "er ikke et primtall.")
    else:
      print(tall, "er et primtall.")