Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In C++11,(function gcd was done. u only need to call it in the funtion phi, I ju

ID: 3785016 • Letter: I

Question

In C++11,(function gcd was done. u only need to call it in the funtion phi, I just want to see how to print the totative list and the totative count.) Write a function phi that takes a single long argument and returns a long, the totative count for the range from 1… argument.

a. Note that the function will have to print the totatives as they are found. b. Each number in the totative list is separated from its neighbor by one space.

Here is an example. Let us say we would like to calculate j(9). We would check every integer between 1 and 9 and observe the following:

- the gcd (1,9) is 1, 1 is a totative of 9, j is 1

- the gcd (2,9) is 1, 2 is a totative of 9, j is 2

- gcd (3,9) is 3, 3 is not a totative of 9, no change to j

- etc. In this sequence 3,6,9 are not totatives of 9 (they all have a gcd ¹ 1),

j(9) has a value of 6 and the totative list of 9 is 1,2,4,5,7,8.

Explanation / Answer

import java.util.Scanner; import java.util.InputMismatchException; import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; /** * Implements a Grocery List Version 4: Has code for all methods (final version) * * @author William McDaniel Albritton */ public class GroceryListProgram4 { /** * The main() Method Starts The Program. * * @param commandlineArguments 1st argument is INPUT File, 2nd argument is OUTPUT File */ public static void main(String[] commandlineArguments) { // Error Checking For 2 Command Line Arguments.. if (commandlineArguments.length != 2) { System.out.println("Please enter the INPUT file name as " + "the 1st commandline argument."); System.out.println("Please enter the OUTPUT file name as " + "the 2nd commandline argument."); System.out.println("Please enter exactly " + "two (2) commandline arguments."); }// end of if // if no commandline argument errors, continue program else { // Declare and instantiate array of 100 Strings final Integer MAX_SIZE = new Integer(100); String groceryList[] = new String[MAX_SIZE]; // Set size of grocery list to zero (0) items Integer size = new Integer(0); // read grocery items from file & store in array for grocery list try { size = GroceryListProgram4.readFromFile(commandlineArguments[0], groceryList, size); } catch (ArrayIndexOutOfBoundsException exception) { System.out.print("ERROR: Too many items in input file. "); System.out.println("Please limit to " + MAX_SIZE + " items."); // Immediately terminates program System.exit(1); } // user's choice for Menu Integer choice = new Integer(0); // choice for ending program final Integer QUIT = new Integer(4); // if the user does not want to QUIT, keep looping while (!choice.equals(QUIT)) { // get the user's choice choice = GroceryListProgram4.displayMenu(); // add grocery item if (choice.equals(1)) { size = GroceryListProgram4.add(groceryList, size); } // delete grocery item else if (choice.equals(2)) { size = GroceryListProgram4.delete(groceryList, size); } // display grocery item else if (choice.equals(3)) { GroceryListProgram4.display(groceryList, size); } // error message else if (!choice.equals(QUIT)) { System.out.println("ERROR: Please enter an integer in the range from 1 to 4"); } }// end of "while" // write to from grocery list array to OUTPUT file GroceryListProgram4.writeToFile(commandlineArguments[1], groceryList, size); }// end of "else" }// end of main() method /** * Displays the menu for the program and returns user's choice * * @return the choice of the user (if error, returns 0) */ public static Integer displayMenu() { // display menu System.out.println(); System.out.println(" GROCERY LIST MENU"); System.out.println(" Enter 1 to Add"); System.out.println(" Enter 2 to Delete"); System.out.println(" Enter 3 to Display"); System.out.println(" Enter 4 to Quit"); System.out.print(" Enter your choice: "); // get input from user Scanner keyboardInput = new Scanner(System.in); Integer choiceOfUser = new Integer(0); try { // non-integer input will throw InputMismatchException choiceOfUser = keyboardInput.nextInt(); } catch (InputMismatchException exception) { // Already have error message in main() method, // as choiceOfUser = 0 } System.out.println(); return choiceOfUser; } /** * Reads grocery items from a file and stores items in an array * * @param inputFile is the INPUT File * @param array is the Grocery List array * @param size is the number of items in Grocery List * @return the new size of the grocery list * @throws ArrayIndexOutOfBoundsException if array size is less than number of * items in input file */ public static Integer readFromFile(String inputFile, String[] array, Integer size) throws ArrayIndexOutOfBoundsException { // connect to file (does NOT create new file) File file = new File(inputFile); Scanner scanFile = null; try { scanFile = new Scanner(file); } catch (FileNotFoundException exception) { // Print error message. // In order to print double quotes("), // the escape sequence for double quotes (") must be used. System.out.print("ERROR: File not found for ""); System.out.println(inputFile + """); } // if made connection to file, read from file if (scanFile != null) { // keeps looping if file has more lines.. while (scanFile.hasNextLine()) { // get a line of text.. String line = scanFile.nextLine(); // display a line of text to screen.. // System.out.println(line); // array[0] stores the first row (headings) to table array[size] = line; // increment size ++size; } // In order to print double quotes("), // the escape sequence for double quotes (") must be used. System.out.println("Read from file "" + inputFile + """); }// end of "if" for connecting to file return size; } /** * Adds a grocery item to an array * * @param list is the grocery list * @param listSize is the size of the grocery list * @return new size of the grocery list */ public static Integer add(String[] list, Integer listSize) { // get item from user Scanner keyboard = new Scanner(System.in); System.out.print("Enter name of item: "); String name = keyboard.nextLine(); System.out.print("Enter number of items: "); String number = keyboard.nextLine(); // add to the end of the array list[listSize] = name + ", " + number; // add one to the size (one item to end of list) return listSize + 1; } /** * Deletes a grocery item from an array * * @param list is the grocery list * @param listSize is the size of the grocery list * @return new size of the grocery list */ public static Integer delete(String[] list, Integer listSize) { // get user input System.out.print("Enter the row number of the item you wish to delete: "); Scanner keyboard = new Scanner(System.in); try { // throws an exception if not an integer Integer row = keyboard.nextInt(); // check for negative integers if (row listSize - 1) { System.out.println("ERROR: The integer is too big for the list."); } else { // delete item by shifting items on the right of the item to the left for (int i = row; i