# Πρόγραμμα Ελέγχου ΑΦΜ

# Ορισμός συνάρτησης Ελέγχου ΑΦΜ
# Παράμετρος εισόδου η μεταβλητή afm, τιμή εξόδου True/False
def elegxos_afm(afm):
    #Αρχικοποίηση λίστας ψηφίων ΑΦΜ
    afm_list=[]
    # Επανάληψη μετατροπής ΑΦΜ σε λίστα των ψηφίων του
    for i in range(9):
        afm_list.append(int(afm[i]))

    # Υπολογισμός αθροίσματος ελέγχου ΑΦΜ    
    athroisma=afm_list[0]*256+ afm_list[1]*128+ \
               afm_list[2]*64+afm_list[3]*32+\
               afm_list[4]*16+ afm_list[5]*8+\
               afm_list[6]*4+ afm_list[7]*2
    # Υπολογισμός σωστού ψηφίου ελέγχου ΑΦΜ
    psifio_elegxou= (athroisma % 11)%10

    # Έλεγχος εαν το σωστό ψηφίο ελέγχου ισούται με \
    # το τελευταίο ψηφίο του ΑΦΜ
    if psifio_elegxou==afm_list[8]:
        return True
    else:
        return False

# Εμφάνιση Μηνύματος Καλωσορίσματος
print("Καλώς Ήρθατε στο Πρόγραμμα Ελέγχου ΑΦΜ")
print()

# Εισαγωγή από τον χρήστη του ΑΦΜ που θέλει να ελέγξει
afm_apo_xristi=input("Εισάγετε το ΑΦΜ που θέλετε να ελέγξετε: ")

# Κλήση συνάρτησης elegxos_afm και
# επιστροφή τιμής στη μεταβλητή apotelesma
apotelesma= elegxos_afm(afm_apo_xristi)

print()
# Εμφάνιση αποτελέσματος
if apotelesma==True:
    print("To ΑΦΜ που εισάγατε είναι Έγκυρο")
else:
    print("To ΑΦΜ που εισάγατε είναι Άκυρο")

# Εμφάνιση Μηνύματος Τέλους
print()
print("Ευχαριστούμε που χρησιμοποιήσατε το Πρόγραμμα \
Ελέγχου ΑΦΜ") 

