Answer:
Here is the JAVA program:
import java.util.Scanner; // to accept input from user
public class Main{ // class name
public static void main(String[] args) { // start of main function
Scanner input = new Scanner(System.in); // creates Scanner class object to take and scan input from user
int highwayNum; //to hold value of highway number
int primaryNum; //to hold value of primary number
highwayNum = input.nextInt(); //scans and takes input value of highwayNum from user
if(highwayNum<1 || highwayNum>999) //if highway number is less than 1 or greater than 999
System.out.println(highwayNum+" is not a valid interstate highway number."); //display this message if above if statement is true
else{ //when above if statement is false
if(highwayNum>=1 && highwayNum<=99){ //checks if highway number is greater than equal to 1 and less than equal to 99
System.out.print("I-"+highwayNum+" is primary, going ");
if(highwayNum%2==0) //checks for the even highway number
System.out.println("east/west."); //prints this if highway number is even
else //if highway number is odd
System.out.println("north/south."); } //prints this if highway number is odd
else{ // if auxiliary number
primaryNum = highwayNum%100; //computes primary number
System.out.print("I-"+highwayNum+" is auxillary, serving I-"+primaryNum+", going "); //displays the auxiliary number and which primary number it is serving
if(primaryNum%2==0) //if primary number is even
System.out.println("east/west."); //displays this if primaryNum is even
else //when primaryNum is odd
System.out.println("north/south."); } } }}//displays this if primaryNum is odd
Step-by-step explanation:
I will explain the program with an example:
Suppose user enters 90 as highway number So
highwayNum = 90
if(highwayNum<1 || highwayNum>999)
This if condition evaluates to false because highwayNum is 90 and its not less than 1 or greater than 999.
So else part executes which has an if statement:
if(highwayNum>=1 && highwayNum<=99)
This statement evaluates to true because highwayNum is 90 so it lies between 1 and 99 inclusive. So the statement inside this if condition executes:
System.out.print("I-"+highwayNum+" is primary, going ");
This statement prints the following message on output screen:
I-90 is primary going
Now next statement if(highwayNum%2==0) checks if highwayNum is completely divisible by 2 and is an even number. This takes the mode of highwayNum by 2 and returns the remainder. 90%2 is 0 because 90 is completely divisible by 2 and hence it is an even number. So this if condition evaluates to true and program control moves to the statement:
System.out.println("east/west."); which prints east/west on the output screen. Hence the output of the entire program is:
I-90 is primary, going east/west.
Screenshot of the program along with its output is attached.