Lista di elementi

I multipli di multiplo

Scrivere un programma che legge da tastiera inizio, fine e multiplo (inizio, fine e multiplo interi positivi con inizio <= fine) e conta quanti numeri multipli di multiplo ci sono tra inizio e fine.

Analisi

Il problema che andiamo a risolvere ci chiede di, dopo aver letto da tastiera delle variabili, contare i multipli di un numero presenti all’interno della lista di numeri da inizio a fine.

In matematica, si dice che un numero intero è multiplo di un altro numero intero se esiste un terzo numero intero tale che moltiplicato per dà come risultato a. Quindi è multiplo di b se e solo se esiste c tale che a = b*c.

Risoluzione

Può sembrare complesso, soprattutto per i nuovi programmatori, individuare la soluzione del problema. Oltre che alla definizione matematica, un numero è multiplo di un altro se la divisione produce un resto uguale a 0.

Capiamo meglio . . .

I multipli di 3 sono, per esempio, 6 – 9 – 12 – 18 . . .

Ora, andando ad effettuare la divisione tra il 3 e un suo multiplo, ad esempio 9 : 3 = 3, vedremo che il resto è uguale a 0. Cosa che non accadrebbe se dividessimo il 3 per un suo non multiplo, infatti, 10 : 3 = 3 con resto 1.

Questo ci fa capire che, utilizzando questa definizione, potrebbe essere una soluzione al problema. Approfondiamo con un test.

Esempio

ABMOD
511
521
531
55
571
510

Attraverso l’operatore MOD andiamo a calcolare il resto della divisione. Se il resto è uguale a 0, B è multiplo di A, altrimenti no.

Ecco che, come da esempio, i multipli di 5 da una lista da 1 a 10 sono 2.

Leggi articolo   Max tra due numeri

Implementazione algoritmo – Multipli di multiplo

def numero_multipli(i, f, m):
    multipli = 0
    if (i >0 and f>0 and m > 0):
      if (i <= f):
        for x in range(i, f+1):
          if x % m == 0:
            multipli = multipli + 1
        print(multipli)
      else:
        print('Inizio deve essere > di fine')
    else:
        print('Errore - inserire inizio e fine maggiori di 0')

  
inizio = int(input('inizio: '))
fine = int(input('fine: '))
multiplo = int(input('multiplo: '))

numero_multipli(inizio,fine,multiplo)

Per testare il funzionamento dell’algoritmo consiglio di scaricare un editor di testo come Visual Studio Code o usufruire degli editor online gratis che permettono, senza scaricare alcun tipo di file, di realizzare algoritmi e testarli. Dopo averne valutati alcuni, ho deciso di affidarmi a Repl.it, semplice, affidabile e potente.

Buon Coding : )

Condividi il post

Condividi su facebook
Condividi su google
Condividi su twitter
Condividi su email
Condividi su whatsapp