#!/usr/bin/python # -*- coding: utf-8 -*- '''Check if the given EGN (Bulgarian Universal Citizen Number) is valid.''' def EGNcheck(EGN): '''Check if the given EGN (Bulgarian Universal Citizen Number) is valid.''' if len(EGN) != 10: return False multipliers = (2, 4, 8, 5, 10, 9, 7, 3, 6) sum = 0 for i in range(9): sum += int(EGN[i]) * multipliers[i] sum %= 11 if sum > 9: sum = 0 # hmm? should it not just subtract 10? # print "sum = %i, EGN[9] = %s" % (sum, EGN[9]) return int(EGN[9]) == sum if __name__ == '__main__': import sys if len(sys.argv) < 2: print '''\ This program check if the given EGN (Universal Citizen Number) is valid in Bulgaria. All EGNs are accepted as arguments. ''' else: print "EGN check version 1.0, by Mr.700" for arg in sys.argv[1:]: if EGNcheck(arg): print arg + " - OK" else: print arg + " - BAD"