Oppg-5-4

Ø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()