Best writers. Best papers. Let professionals take care of your academic papers

Order a similar paper and get 15% discount on your first order with us
Use the following coupon "FIRST15"
ORDER NOW

java

Question

(1) Question:For this java coding challenge, you will ask the user for the name of an output file to save the

data.

You will expand the java program that asks for a start number and stop number, and tells you if the numbers in the inclusive range are prime, perfect, imperfect deficient, or imperfect abundant. You will next add a check for Perfect Squares. A perfect square is the square of an integer (e.g., 1,4,9,16, 25, etc.)

Note 1: For this project, the number 1 will be considered a prime number, but it is not a perfect number (since its only factor is just 1, which by definition is an improper factor, thus disqualifying it from being perfect)

Note 2: All Prime Numbers and Perfect Squares are also Imperfect Deficient. But a positive check for “Prime” or “Perfect Square” supersedes a check for “Imperfect Deficient”

Note 3: You do not need to add any error testing code on the numbers; the code will be tested with strictly positive integers. You must add error checking for the creation of the external file (per Java’s insistence)

Below is my Java code:

import java.io.*;

import java.util.Scanner;

public class CodingChallenge4CRM {

  public static void main(String[] args){

    Scanner sc = new Scanner(System.in);

    System.out.println(“Welcome to the Prime, Perfect Square, and Perfect Number Tester “);

    System.out.println(“Please enter the name of the output file to save your data:”);

    String name = sc.nextLine();

    PrintWriter pw = null;

    try {

      FileOutputStream fout = new FileOutputStream(name);

      pw = new PrintWriter(fout);

    }

    catch (Exception e){

      e.printStackTrace();

    }

    System.out.print(“Enter a start number:”);

    int a = Integer.parseInt(sc.nextLine());

    System.out.print(“Enter a stop number:”);

    int b = Integer.parseInt(sc.nextLine());

    for (int i = a; i<b; i++){

      int ps = 0;

      for (int k = 0; k<a; k++){

        if (k*k == i){

         ps = 1;

         System.out.println(“The number ” + i+ ” is: Perfect Square”);

         pw.println(“The number ” + i+ ” is: Perfect Square”);

        }

      }

      if (ps == 1)

       continue;

      int sum = 0;

      for (int j = 2; j<i; j++){

        if (i % j == 0)

         sum = sum + j;

      }

      if (sum == 0){

        System.out.println(“The number ” + i+ ” is: Prime”);

        pw.println(“The number ” + i+ ” is: Prime”);

      }

      else if (sum == i){

        System.out.println(“The number ” + i+ ” is: Perfect Number”);

        pw.println(“The number ” + i+ ” is: Perfect Number”);

      }

      else if (sum > i){

        System.out.println(“The number ” + i+ ” is: Imperfect Abundant”);

        pw.println(“The number ” + i+ ” is: Imperfect Abundant”);

      }

      else{

        System.out.println(“The number ” + i+ ” is: Imperfect Defficient”);

        pw.println(“The number ” + i+ ” is: Imperfect Defficient”);

      }

    }   

  }

}

The output needs to look like the following:

Welcome to the Prime, Perfect Square, and Perfect Number Tester

Enter the name of the output file: MyNumData.txt

Enter a start number: 20

Enter a stop number : 30

The number 20 is: Imperfect Abundant

The number 21 is: Imperfect Deficient

The number 22 is: Imperfect Deficient

The number 23 is: Prime

The number 24 is: Imperfect Abundant

The number 25 is: Perfect Square

The number 26 is: Imperfect Deficient

The number 27 is: Imperfect Deficient

The number 28 is: Perfect

The number 29 is: Prime

The number 30 is: Imperfect Abundant

Results: my written java program stops one less–stops at 29 and it incorrectly reports 28 as imperfect deficient when in fact it is perfect. I can’t figure out where I went wrong in the code.

Any assistance will be greatly appreciated.

Top Answer

 
Looking for a Similar Assignment? Order now and Get 10% Discount! Use Coupon Code "Newclient"