Problem:
The problem is divided into two parts. First, you should write a program that reads an integer N from the user and checks if the input is a prime number using static boolean isPrime(int N) that returns true if N is a prime and false otherwise. Then, you should extend the program to determine all prime numbers between 2 and N and store them in an array. You can create an array of size N since the number of primes between 2 and N is bounded above by N. Finally, all found prime numbers should be displayed.
Output:
Enter a number:
53
53 is a prime
The list of primes: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53
53
53 is a prime
The list of primes: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53
Solution:
import java.util.Scanner; public class Problem3 { public static boolean isPrime (int N) { boolean prime = true; for ( int i = 2; i < N; i++ ) { if ( N % i == 0 ) { prime = false; } } return prime; } public static void main (String[] args) { int j =0; Scanner scan = new Scanner (System.in); System.out.println("Enter a number:"); int N = scan.nextInt(); int[] list = new int[N]; if (isPrime(N)) System.out.print(N+ " is a prime"); else System.out.print(N+ " is not a prime."); for ( int i = 2; i <= N; i++ ) { if ( isPrime(i) ) { list[j] = i; j++; } } System.out.println(); System.out.print("The list of primes: "); for (int values: list) { if (values != 0) System.out.print(values + " "); } } }
No comments :
Post a Comment