/** * scompone un numero intero positivo n in fattori * primi. n sia letto da input standard * * @author Adriano Luchetta * @version 16-Ott-2005 * */ import java.util.Scanner; public class Fattorizzatore { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("***********************************************"); System.out.println("*** Programma che scompone un numero intero ***"); System.out.println("*** positivo n in fattori primi ***"); System.out.println("***********************************************"); System.out.println(""); System.out.print("n?: "); int n = in.nextInt(); // gestione del caso non ammesso n <= 0 if (n <= 0) { System.out.println(n + ": ingresso non ammesso"); return; } // Fattorizzazione String stringFattori = "1"; int k = n; int j = 2; while (j * j <= k) { while (k % j == 0) { stringFattori = stringFattori + " * " + j; // trovato un divisore k = k / j; // il nuovo numero da fattorizzare e' k / j } j++; } if (k > 1) // se k e' maggiore di 1 allora e' un divisore stringFattori += " * " + String.valueOf(k); // Stampa su output standard System.out.print(n + " = " + stringFattori); } }