Έγκυρος αριθμός ΑΦΜ

Ένας Αριθμός Φορολογικού Μητρώου (ΑΦΜ) θεωρείται έγκυρος εάν αυτός πληρεί ορισμένες προϋποθέσεις. Έστω ο ΑΦΜ Α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] = Υπ) τότε 
      Εμφάνισε 'ΑΦΜ έγκυρο' 
   Αλλιώς 
      Εμφάνισε 'ΑΦΜ, μη έγκυρο' 
   Τέλος_αν

Τέλος_αν

Τέλος Εγκυρότητα_ΑΦΜ