Finne primtall med Python

Det fines uendelig mange primtall, men hvordan skal vi klare å finne dem? Vel, vi benytter oss av en regneoperasjon i python som heter modulo. Den fungerer slik at den returnerer resten dersom det første tallet deles på det andre. Se her:
12 % 5 = 2
14 % 7 = 0
29 % 12 = 5
Dette kan vi benytte til å sjekke om et tall er delelig med et annet, og det er jo alt som skal til. Dersom tallet kun er delelig med seg selv og 1 så er det….vel, et primtall 🙂

La oss lage et lite dataprogram som kan finne ut om et tall er et primtall:

Pyton
				TALL = 1009 # tallet vi ønsker å sjekke om er primtall
#-------------------------
faktorer = []

for div in range(1,TALL + 1):
    if TALL % div == 0:
        faktorer.append(div)

if len(faktorer) == 2:
    print(TALL, "er et primtall")
else:
    print(TALL, "har følgende faktorer:", faktorer)
			
Oppgave til etterarbeid!

I dette programmet så sjekker vi om tallet vårt kan deles på alle tall fra 1 til tallet selv. Hvis vi bare ønsker å finne ut om vi har et primtall, trenger vi egentlig å sjekke alle disse tallene?

Snakk litt sammen 2-3 og se om dere kan komme med forslag som gjør programmet litt mer effektivt.

DigitAbel – for dypere læring