Your challenge:
Write, compile, and execute a complete HLA program that does the following:

[15 points] has one static variable of type uns16, to store user input

[15 points] has a robust getUns16 procedure that takes a string parameter representing the user prompt (for example,
for this program an appropriate prompt might be "enter a number (MINMAX)", with MIN and MAX as parameters; guarantees
a user input value in the range min to max inclusive; returns the input value in ax;
@forward declare the procedure

has a procedure showFactors that takes a single uns16 as an argument and does the following:

[10 points] has one local/automatic variable to keep count of the number of factors (values that evenly
divide into the parameter value)

[30 points] uses a for loop that starts at 1 and counts up to (and including) the parameter value (NOTE:
you may have to "promote" the parameter value to an uns32 register to make this work correctly)

[50 points] on each pass through the loop, divides the number by the loop counter to see if it is a factor 
if it is a factor, display the value, and increment the factor counter if the divisor is not 1 and not
the number itself

[10 points] if the factor counter is greater than 0, return 0 in al; if the factor counter is equal to 0,
return 1 in al

in the main loop:

[10 points] use your getUns16 procedure to get a user input value to test  restrict this value to
between 2 and 65535

[10 points] pass the user's input to showFactors  if showFactors returns 0, display "NUMBER is not
prime."; if showFactors returns 1, display "NUMBER is prime." (replace NUMBER with the user's input value)