Esame di Stato 2014 – Quesito 5
Dei numeri 1, 2, 3, …, 6000, quanti non sono divisibili né per 2, né per 3, né per 5?
Soluzione 1
Conta i numeri che superano il test di NON divisibilità per 2, 3 e 5
N = 6000
soluzione = 0
for n in range(1, N+1):
if(n%2 != 0) and (n%3 != 0) and (n%5 != 0):
soluzione += 1
print("Soluzione:", soluzione) # 1600
Soluzione 2
Conta i multipli di 2 oppure 3 oppure 5 e sottrae il loro numero al totale
N = 6000
multipli = 0
for n in range(1, N+1):
if(n%2 == 0) or (n%3 == 0) or (n%5 == 0):
multipli += 1
soluzione = N-multipli
print("Multipli :", multipli ) # 4400
print("Soluzione:", soluzione) # 1600
Soluzione 3
Segue lo stesso schema della discussione “matematica”
- conta separatamente i multipli di 2, 3, 5, 6, 10, 15, 30
- fa il calcolo “complicato”
N = 6000
m2 = m3 = m5 = m6 = m10 = m15 = m30 = 0
for n in range(1, N+1):
if(n% 2 == 0): m2 += 1
if(n% 3 == 0): m3 += 1
if(n% 5 == 0): m5 += 1
if(n% 6 == 0): m6 += 1
if(n%10 == 0): m10 += 1
if(n%15 == 0): m15 += 1
if(n%30 == 0): m30 += 1
multipli = m2+m3+m5-m6-m10-m15+m30
soluzione = N-multipli
print("Multipli di 2:", m2 ) # 3000
print("Multipli di 3:", m3 ) # 2000
print("Multipli di 5:", m5 ) # 1200
print("Multipli di 6:", m6 ) # 1000
print("Multipli di 10:", m10 ) # 600
print("Multipli di 15:", m15 ) # 400
print("Multipli di 30:", m30 ) # 200
print("Multipli :", multipli ) # 4400
print("Soluzione :", soluzione) # 1600