Er tallet et primtal?

Det kan dog også være nyttigt blot at finde ud af, om et tal er et primtal. Det kan nedenstående kode.

# input
tal = 60

# hvis tallet (tal) er større end 1
if tal > 1:
   # kontrol for faktorer mellem 2 og tal
   for i in range(2,tal):
       if (tal % i) == 0:
           print(tal,"er ikke et primtal")
           print(i,"gange",tal//i," er ",tal)
           break
   else:
       print(tal,"er et primtal")
       
# hvis tallet (tal) er mindre end 1 eller
# lig med 1, så er det ikke et primtal
else:
   print(tal,"er ikke et primtal")

Opgave

  • Prøv at ændre koden, så et andet tal testes.
  • Prøv at bruge int(input("Skriv et tal: ")) i stedet for 60.
  • Kan du lave koden om, så man får vist alle divisorerne til tallet?

Find forskellene

# får brugeren til at indtaste tallet
tal = int(input("Skriv tallet: "))
divisorer = "1,"
divisorer_antal = 1

# hvis tallet (tal) er større end 1
if tal > 1:
   # kontrol for faktorer mellem 2 og tal
   for i in range(2,tal+1):
       if (tal % i) == 0:
           divisorer = divisorer + str(i) + ","
           divisorer_antal = divisorer_antal+1
   next
   divisorer = divisorer[:-1]  
   if divisorer_antal > 2: print(tal,"er ikke et primtal, da", divisorer, "går op i ", tal, ". Tallet",tal, "har",divisorer_antal,"divisorer.")
   else:
     print(tal,"er et primtal")

# hvis tallet (tal) er mindre end 1 eller
# lig med 1, så er det ikke et primtal
else:
   print(tal,"er ikke et primtal")

Opgave

  • Hvilke forskelle er der mellem denne kode og den forrige, hvor man skal finde primtal?
  • Behøver man indtaste linje 13? Hvorfor/hvorfor ikke?
Lesson tags: Primfaktorisering, Primfaktoropløsning, Primtal, Python
Back to: Lær Python > Matematik

Skriv et svar