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?