Ένας Αριθμός Φορολογικού Μητρώου (ΑΦΜ) θεωρείται έγκυρος εάν αυτός πληρεί ορισμένες προϋποθέσεις. Έστω ο ΑΦΜ Α9Α8Α7Α6Α5Α4Α3Α2Α1, όπου ΑΙ το Ι-στό ψηφιο,
- Βρίσκουμε το άθροισμα της πράξης Σ = Α1
*
0+Α2*
2+Α3*
4+Α4*
8+Α5*
16+Α6*
32+Α7*
64+Α8*
128+Α9*
256 - Υπολογίζουμε το υπόλοιπο Υπ της διαίρεσης του Σ με τον αριθμό 11.
- Αν το υπόλοιπο Υπ της διαίρεσης είναι 10 τότε το A1 πρέπει να είναι ίσο με 0. Στην αντίθετη περίπτωση, πρέπει το Υ να είναι ίσο με το Α1.
Να γίνει αλγόριθμος ο οποίος θα διαβάζει έναν 9-ψήφιο ακέραιο αριθμό (ο οποίος θα αναπαριστά το ΑΦΜ) και θα ελέγχει αν είναι έγκυρο ή όχι.
Αλγόριθμος Εγκυρότητα_ΑΦΜ
Διάβασε αφμ
υ <- αφμ
ψηφίο <- 0
Όσο (υ > 0) επανάλαβε
ψηφίο <- ψηφίο + 1
ψηφια_αφμ[ψηφίο] <- υ mod 10
υ <- υ div 10
Τέλος_επανάληψης
Αν ψηφίο <> 9 τότε
Εμφάνισε 'ΑΦΜ, μη έγκυρο'
Αλλιώς
πολλαπλασιαστής <- 2
Σ <- 0
Για ι από 2 μέχρι 9
Σ <- Σ + ψηφία_αφμ[ι] * πολλαπλασιαστής
πολλαπλασιαστής <- πολλαπλασιαστής * 2
Τέλος_επανάληψης
Υπ <- Σ mod 11
Αν ((Υπ = 10 και ψηφία_αφμ[1] = 0) Η ψηφία_αφμ[1] = Υπ) τότε
Εμφάνισε 'ΑΦΜ έγκυρο'
Αλλιώς
Εμφάνισε 'ΑΦΜ, μη έγκυρο'
Τέλος_αν
Τέλος_αν
Τέλος Εγκυρότητα_ΑΦΜ