In: Computer Science
Must be written in JAVA Code
Write a program that takes a whole number input from a user and determines whether it’s prime. If the number is not prime, display its unique prime factors. Remember that a prime number’s factors are only 1 and the prime number itself. Every number that’s not prime has a unique prime factorization. For example, consider the number 54. The prime factors of 54 are 2, 3, 3 and 3. When the values are multiplied together, the result is 54. For the number 54, the prime factors output should be 2 and 3. Use Sets as part of your solution.
// do comment if any problem arises
// code
import java.util.*;
class Prime {
// this function returns true if given number is prime
public static boolean isPrime(int number) {
for (int i = 2; i < number; i++) {
if (number % i == 0)
return false;
}
return true;
}
// this function prints prime factors of given numebr
public static void print_primes(int number) {
System.out.println("Prime factors of "+number+" are:");
// create a set
Set<Integer> factors = new HashSet<Integer>();
for (int i = 2; i < number; i++) {
while (number % i == 0) {
number /= i;
factors.add(i);
}
}
// print all prime factors in set
Iterator<Integer> it=factors.iterator();
while(it.hasNext())
{
System.out.print(it.next()+" ");
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// read a number from user
System.out.println("Enter a number: ");
int number = sc.nextInt();
if (isPrime(number))
System.out.println(number + " is a Prime number.");
else
print_primes(number);
}
}
Output: