Sei sulla pagina 1di 2

---------------

| Esercizio 1 |
---------------

#Definiamo n

n = 20

#Facciamo variare x per tutti i valori da 2 a n, selezionando solo quelli non


risultano divisibili
#per tutti i numeri minori di x

primi = [x for x in range(2,n+1) if not [t for t in range(2,x) if x%t==0] ]

#Output dei risultati

print(primi)

---------------
| Esercizio 2 |
---------------

#Definisco la lista facendo variare la lunghezza dei due cateti fra tutti i valori
tra 1 e 200
#Verifico inoltre che l'ipotenusia sia intera ponendo la condizione che il suo
resto divisa per la sua parte intera sia 0

pita = [ (m, n, int((m**2+n**2)**(0.5)) ) for m in range(1,200) for n in


range(1,200) if n>m and (m**2+n**2)**(0.5)<200 and ((m**2+n**2)**(0.5))%
int((m**2+n**2)**(0.5))==0 ]

#Output dei risultati

print(pita)

---------------
| Esercizio 3 |
---------------

#Definisco la stringa "testo"

testo = " tre strette tazze dentro a tre tazze strette "

#Creo la lista parole contenente le parole senza ripetizioni e le ordino

parole = testo.split()
parole = sorted(list(set(parole)))

#Creo la lista contenente le iniziali di ogni stringa in "parole" e le ordino

iniziali = sorted(list(set([parole[i][0] for i in range(len(parole))])))

c = [ (iniziali[i], parole[j]) for i in range(len(iniziali)) for j in


range(len(parole)) if parole[j][0]==iniziali[i] ]

print parole
print iniziali
print c
---------------
| Esercizio 4 |
---------------

#Definisco m

m = 200

#Definisco la prima lista di "st"

l1 = [i for i in range(1, m+1) if [j for j in range(len(str(i))) if (str(i)[0]=="1"


and str(i)[j]==str(i)[len(str(i))-j-1])] ]

print(l1)

---------------
| Esercizio 5 |
---------------

#Definisco il testo da cifrare

testo = "esempioditestoinchiaro"

#Definisco la chiave di cifrature

k = [[3 ,3] ,[2 ,5]]

#Creo una lista t contenete le coppie di caratteri

t = [ (testo[i], testo[i+1]) for i in range(0, len(testo)-1, 2) ]

#Cifro il codice, generando una lista contenete liste di due elementi che
rappresentano la coppia di lettere cifrate
#Per fare questo, trasformo i due caratteri nel loro codice unicode e traslo in
modo da avere una funzione biettiva
#che associa ogni lettera ad un valore da 1 a 26. Dopodiche applico la Cifratura di
Hill e riconverto

code = [ [chr(ord('a')+((ord(i[0])-ord('a'))*k[0][0] + (ord(i[1])-ord('a'))*k[0]


[1])%26), chr(ord('a')+((ord(i[0])-ord('a'))*k[1][0] + (ord(i[1])-ord('a'))*k[1]
[1])%26)] for i in t]

#Unisco i vari caratteri della lista in un'unica stringa

code = ["".join(c) for c in code]


code = "".join(code)

#Output dei risultati

print(testo)
print(code)