answersLogoWhite

0

Here's an algorithm in java:

import java.util.Scanner;

import java.util.ArrayList;

public class PrimeFactorization

{

public static void main(String[] args)

{

String response;

Scanner scan=new Scanner(System.in);

double num=0;

boolean read=false,run=true;

timer.start();

while(run)

{

System.out.println("Enter a number");

while(!read)

{

response=scan.next();

try

{

num=Double.parseDouble(response);

read=true;

}

catch(NumberFormatException exception)

{

System.out.println("Incorrect Format");

}

}

read=false;

TimerListener.resetT();

ArrayList<Double> list=getPrimeFactorization(num);

System.out.println("Prime Factorization:");

for(int count=0;count<list.size()-1;count++)

{

System.out.print(list.get(count)+", ");

}

System.out.println(list.get(list.size()-1));

System.out.println("Time: "+TimerListener.getT()+"s\n\n");

}

}

public static ArrayList<Double> getPrimeFactorization(double num)

{

ArrayList<Double> list=new ArrayList<Double>();

boolean run=true;

double index;

while (run)

{

list.add(index=getFirstFactor(num));

num=num/index;

if (num==1) run=false;

}

return list;

}

private static double getFirstFactor(double num)

{

for(int count=2;count<=Math.sqrt(num)+1;count++)

{

if ((double)num/(double)count%1==0)return count;

}

return num;

}

User Avatar

Wiki User

15y ago

What else can I help you with?