The program converts numbers to words, based on denominations of the Indian Numbering System. It can convert integers in a range of -10^19 to +10^19 currently, which is the limit of the Indian numbering system.
I encountered this question in class 6, but never really managed to solve it then-- obviously the question probably did not intend for conversion universally but hey, the range was also not mentioned. Also, it did not help that online solutions took more than 700 lines simply for 0-9999 range coversions and that they did not include "and" within converted solutions (been learning from class 1 that 4001 = Four thousand and one).
Alphanumerism.java is the first draft I solved in class 12, followed by the optimized Alchemy.java the year after.