Øvelse 5 – Oppgave 4
Glade primtall
Filene du trenger for å løse denne oppgaven ligger i .zip-mappen.
I denne oppgaven skal du sammenligne innholdet i to filer, og skrive resultatet av sammenligningen til en ny fil. Filen primtall.txt inneholder primtallene fra 1-1000. Filen gladetall.txt inneholder de «glade tallene» (Happy Numbers, wikipedia: https://en.wikipedia.org/wiki/Happy_number) fra 1-1000.
Finn tallene som er «glade primtall» – altså de som både er glade tall og primtall, og som dermed eksisterer i begge filene. Skriv disse tallene til konsoll, og til en ny fil og lagre den som «gladePrimtall.txt».
Løsningsforslag
## Oppgave 4 svar
# Åpne filen med primtall
fil1 = open('primtall.txt','r')
prim = [] # Initier liste for primtallene
# Hent ut primtallene fra filen og legg til i lista
for i in fil1.readlines():
prim.append(int(i))
fil1.close() # Lukker primtall-filen
print('Primtallene er:', prim,'\n')
# Åpne filen med glade tall
fil2 = open('gladetall.txt','r')
glade = [] # Initier liste for glade tall
# Hent ut glade tall fra filen og legg til i lista
for i in fil2.readlines():
glade.append(int(i))
# Lukker glade tall-filen
fil2.close()
print('Glade tall er:', glade,'\n')
# Initierer liste for glade primtall
gladeprim = []
# For hvert primtall, sjekk om det samme tallet eksisterer i glade tall-lista
for i in prim:
if i in glade:
gladeprim.append(str(i)) # Legger tall som både er prim og glade til i glade primtall-lista
print('Glade primtall er:', gladeprim)
# Åpner en ny fil
fil3 = open('gladePrimtall.txt', 'a')
# Skriver glade primtall til filen med newline slik at de kommer på hver sin linje
for i in gladeprim:
fil3.write(i +'\n')
# Lukker filen med glade primtall
fil3.close()
