#!/usr/bin/env python """Automate fini reconnaissant les entiers en base 2 divisibles par 7.""" def main() -> None: """Exécution de l'automate.""" print("Fournissez un nombre : ") nombre = input() nb_base10 = int(nombre, 2) if automate_modulo_7(nombre): print(f"{nb_base10} est multiple de 7") else: print(f"{nb_base10} n'est pas multiple de 7") def automate_modulo_7(nombre: str) -> bool: """Automate de modulo 7 en base 2.""" etats = [ (0, 1), # état 0 (2, 3), # état 1 (4, 5), # état 2 (6, 0), # état 3 (1, 2), # état 4 (3, 4), # état 5 (5, 6), # état 6 ] etat_courant = 0 # état initial for chiffre in nombre: etat_courant = etats[etat_courant][int(chiffre)] if etat_courant == 0: return True return False if __name__ == "__main__": main()