Advertisement
Guest User

RandomNumber

a guest
Nov 28th, 2014
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.09 KB | None | 0 0
  1. /*Crediti:
  2.  * Ludovico Conti
  3.  */
  4.  
  5. import fiji.io.*;
  6.  
  7. /* Problema
  8.     Scrivere un'applicazione Java che dato un intero n letto da input, generi numeri random, interi, compresi tra 1 e 100, e stampi in output i primi n numeri primi trovati tra i random generati e il numero totale di numeri random generati.
  9. */
  10.  
  11. public class RandomNumber {
  12.     public static void main(String[] args) {
  13.        
  14.         /* Nota si può eventualmente decommentare il System.out per vedere in runtime il numero generato */
  15.        
  16.        
  17.        
  18.         /* Dichiarazione delle variabili */
  19.        
  20.         int n;  // variabile in input per i primi n numeri primitivi
  21.         int rdm_n; //numero random che genero
  22.         int gen; //numero di elementi generati random
  23.         int gen_p; //numero di primitivi generati
  24.         String s,s1; //stringhe di tutti numeri random(s) e quelli primitivi(s1)
  25.        
  26.         s =  "";    //Assegno una stringa vuota che verrà concatenata con i numeri random.
  27.         s1 = "";    //Assegno una stringa vuota che verrà concatenata con i numeri primi.
  28.        
  29.         /* Fine delle dichiarazioni */
  30.        
  31.         /* Iniziazione dei contatori = 0 */
  32.         gen = 0;
  33.         gen_p = 0;
  34.        
  35.         /* Fini iniziazione contatori */
  36.        
  37.         System.out.println("Inserisci il numero di numeri primi da trovare.");
  38.         n = Lettore.in.leggiInt(); //Prendo in input un valore intero
  39.        
  40.         while(gen_p < n){           //Genero numeri fino a quando non trovo n primi
  41.             rdm_n = (int)(Math.random()*100)+1; //Generazione del numero random tra 1 e 100
  42.     //      System.out.println("Numero Random Generato:"+rdm_n);
  43.             gen ++; //incremento il contatore dei numeri generati
  44.             s = s+rdm_n+" ";  //concateno i numeri generati nella stringa
  45.             if (numeroprimitivo(rdm_n)){  //controllo se il numero è primo
  46.                 s1 = s1+rdm_n+" ";;  //se è primo concateno il numero alla stringa dei primi
  47.                 gen_p++;        //Incremento il contatore dei numeri primi.
  48.             }
  49.            
  50.         }
  51.        
  52.         System.out.println("Sono stati generati:"+gen+" numeri random.");
  53.         System.out.println("Sono stati trovati:"+gen_p+" numeri primi tra quelli generati.");
  54.         System.out.println("Elenco dei numeri generati:"+s);
  55.         System.out.println("Elenco dei numeri primi trovati:"+s1);
  56.  
  57.     }
  58.    
  59.    
  60.     public static boolean numeroprimitivo(int number){
  61.         /* Definizione del problema */
  62.         /* Un numero e' primitivo se divisibile solo per 1 e per se stesso */
  63.        
  64.         /* Nota: si può eventualmente decommentare i due System.out se si vuol vedere il runtime il controllo dei numeri */
  65.        
  66.         /* Iniziazione delle definizioni */
  67.        
  68.         boolean k = true;
  69.         int costante = 2;
  70.         int radice = (int)Math.sqrt(number);
  71.        
  72.         /*Fine delle iniziazzioni */
  73.        
  74.         while (k && (costante<=radice)){  //ciclo while, fino a quando k è vero e costante è < della radice di numero continua
  75.             if (number%costante== 0)  //controllo che il valore assoluto di number costante sia uguale a 0; quind numero multiplo di costante
  76.                 k = false;
  77.                 costante = costante +1;  //Incremento la costante
  78.         }
  79.         if (!k){ //se k == false  printa questo
  80.         //  System.out.println("Il numero:"+number+" non e' primo.");
  81.             return false;
  82.         }else{
  83.         //  System.out.println("Il numero:"+number+" e' primo.");
  84.             return true;
  85.         }
  86.     }
  87.  
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement