2015-02-19 15 views
5

Ho creato un metodo per creare una stringa UUID a 128 bit, ora voglio controllare se questo è un numero primo o meno. Non posso mettere la stringa in un int perché è troppo grande. Qualcuno può suggerire come vorrei andare sul controllo?Verifica se stringa UUID è Prime

Questo è il codice che ho utilizzato per creare l'UUID

public static String uuid() 
    { 
     UUID uuid = UUID.randomUUID(); 
     long hi = uuid.getMostSignificantBits(); 
     long lo = uuid.getLeastSignificantBits(); 
     byte[] bytes = ByteBuffer.allocate(16).putLong(hi).putLong(lo).array(); 
     BigInteger big = new BigInteger(bytes); 
     String numericUuid = big.toString().replace('-','1'); // just in case 
     //System.out.println(numericUuid); 
     return(numericUuid); 
    } 
+0

si può fare long num = big.longValue (); se vuoi fare dei calcoli su di esso. – SpaceCowboy

+2

Questa è una domanda bizzarra. Testare un 'BigInteger' per la primalità [è super facile,] (http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html#isProbablePrime-int-) ma perché potresti preoccuparti se un UUID è primo? Sto morendo dalla voglia di sapere. – erickson

+0

Ho cambiato a lungo ma non mi sembra più 128 bit, puoi suggerire comunque di risolverlo? @ durron597 non voleva fare un duplicato ma penso che la mia domanda sia diversa – Hayes121

risposta