'''
ARGOMENTI:
---------------------------------------------------------------------
	- range
			Funzione che restituisce una sequenza di numeri interi caratterizzata
			da un valore INIZIALE (incluso) e uno FINALE (escluso).
			Se il valore iniziale viene omesso e' sottinteso che sia 0.

	- ciclo for
			Struttura di controllo iterativa che determina l'esecuzione di
			un blocco di programma ripetuto per un certo numero finito di volte.
			Si distingue dal ciclo while dove la ripetizione avviene finche' 
			e' valida una determinata condizione. 


'''
print ("\n\n\n")
print ("1^ ESEMPIO")
print ("-------------------------------")
nl=1
for l in "Roma":
   print ("Lettera numero", nl, ":", l)
   nl=nl+1
   
print ("\n\n\n")
print ("2^ ESEMPIO")
print ("-------------------------------")
nc=1
for c in ["Napoli", "Roma", "Torino"]:    # lista
   print ("Citta' numero", nc, ":", c)
   nc=nc+1

print ("\n\n\n")
print ("3^ ESEMPIO")
print ("-------------------------------")
for i in range(1,5): 
   print (i)
print ("------")
for i in range(3,7): 
   print (i)
print ("------")
for i in range(4): 
   print (i)
print ("------")
for i in range(-101,-95):  
   print (i)


print ("\n\n\n")
print ("4^ ESEMPIO - For annidati - Tabellina")
print ("-------------------------------------")
for R in range(1,11): 
	Riga=""  
	for C in range(1,11):   
		Riga=Riga + "\t" + str(R*C)
	print (Riga)
	
	
print ("\n\n\n")
print ("5^ ESEMPIO - For annidati - Numeri Primi")
print ("----------------------------------------")
maxNum=20
for n in range(2,maxNum+1): 
	Primo=True
	for i in range(2,n): 
		if n%i == 0:		# operatore MODULO: resto della divisione
			Primo=False
			break
	if Primo:
		print (n, "\tNUMERO PRIMO")
	else:
		print (n, "\t\tnon e' un numero primo")
