diff --git a/misc/EGN b/misc/EGN new file mode 100755 index 0000000..d42ee88 --- /dev/null +++ b/misc/EGN @@ -0,0 +1,33 @@ +#!/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"