Advertisement
gabuwu

TP04-EJ4- PRINCIPAL new

Nov 18th, 2021
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.99 KB | None | 0 0
  1. package TP4;
  2.  
  3. public class Principal {
  4.     public static void main(String[] args) {
  5.         Helper ayuda = new Helper();
  6.        
  7.          boolean seguir=true;
  8.     do {     
  9.            
  10.         switch(menu()) {
  11.             case 1:
  12.                 porConsola();
  13.                 break;
  14.        
  15.             case 2 :
  16.                 random();
  17.                 break;
  18.         }
  19.         ayuda.print("\nDesea seguir operando? (1)Si  - (2)No");
  20.         seguir=ayuda.continuar();
  21.     }while (seguir);
  22.        
  23. }
  24.    
  25. public static int menu() {
  26.         Helper ayuda = new Helper();
  27.          int opc= 0;
  28.      
  29.                 ayuda.print("Programa para descomponer un numero en factores primos");
  30.                 ayuda.print("******MENU*****");
  31.                 ayuda.print("1- Ingreso por consola");
  32.                 ayuda.print("2- Generar aleatoriamente");
  33.                 do {
  34.                     ayuda.print("Elija una opcion.... \n");
  35.                     opc = ayuda.ingresoNum();
  36.                        if (opc !=1 && opc!= 2) {
  37.                            ayuda.print("Opcion invalida...Ingrese nuevamente");
  38.                        }
  39.                 }while(opc!=1 && opc!=2);
  40.        
  41.         return opc;
  42.    
  43.     }
  44.  
  45.     public static void porConsola() {
  46.         Helper ayuda = new Helper();
  47.         SimpleLinkedList<String> lista = new SimpleLinkedList<String>();
  48.        
  49.             ayuda.print("Ingrese un numero entero positivo");
  50.             int num = ayuda.ingresoNum();
  51.             lista = factorizar(num);
  52.     }
  53.    
  54.     public static void random() {
  55.         Helper ayuda = new Helper();
  56.         SimpleLinkedList<String> lista = new SimpleLinkedList<String>();
  57.        
  58.         int num= ayuda.generarRand();
  59.         lista = factorizar(num);
  60.     }
  61.  
  62.     public static  SimpleLinkedList<String> factorizar(Integer num ) {
  63.         SimpleLinkedList<String> lista = new SimpleLinkedList<String>();
  64.         Helper ayuda = new Helper();
  65.      
  66.          String numStr="";
  67.         String exponenteStr="";
  68.         String expMaxStr="";
  69.         int exponenteAux = 0;
  70.         int exponenteMax=0;
  71.        
  72.         System.out.println("\nEl numero "+num+" queda factorizado de la siguiente manera");
  73.         for (int i=2 ; num>1 ;i++) {            
  74.             int exponente = 0;
  75.            
  76.             while(num%i == 0) {                
  77.                 exponente++;  
  78.                 num=num/i;
  79.                
  80.                 if (num%i != 0) {
  81.                     if( exponente > 1 ) {      
  82.                         numStr = ayuda.toString(i);
  83.                         exponenteStr = ayuda.toString(exponente);
  84.                         lista.addLast(numStr + "^"+exponenteStr+ " x ");
  85.                        
  86.                      
  87.                         if(exponenteAux == 0) {
  88.                             exponenteAux = exponente;      
  89.                         }  
  90.                            
  91.                         if(exponenteAux < exponente) {
  92.                                 exponenteMax = exponente;
  93.                                 expMaxStr = ayuda.toString(exponenteMax);
  94.                         }else {
  95.                                     exponenteMax = exponenteAux;
  96.                                     expMaxStr = ayuda.toString(exponenteMax);
  97.                                 }
  98.                        
  99.                     }
  100.                     else if (num>1){    
  101.                         numStr = ayuda.toString(i);
  102.                         lista.addLast(numStr + " x ");              
  103.                        
  104.                     }
  105.                     else {
  106.                         numStr=ayuda.toString(i);
  107.                         lista.addLast(numStr);
  108.                        
  109.                        
  110.                     }
  111.                    
  112.                 }
  113.                
  114.                      
  115.             }
  116.                      
  117.             if("".equals(expMaxStr)) {
  118.                 expMaxStr="1";
  119.             }
  120.         }
  121.          
  122.         System.out.println(lista.toString());
  123.      
  124.         System.out.println("Y su multiplicidad es: " +expMaxStr);
  125.        
  126.         return lista;
  127.        
  128.     }
  129.    
  130.                    
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement