¿La API de Java proporciona una función que calcula el siguiente número primo más grande dada una entrada x?¿Cuál es la función integrada que encuentra el número primo siguiente más grande en Java?
Respuesta
Eso sería un método bastante esotérico, y no es realmente un gran candidato para la inclusión en una biblioteca de clases general. Debería escribir esto usted mismo, usando test o sieve.
tamiz se utiliza para encontrar todos los números primos _less_ que un número particular - en este caso use una prueba :) –
Claro, pero siempre puede generar números primos hasta N * primero *, y luego "siguiente" (debajo de N) se vuelve trivial. :) – dlev
¿por qué sería esotérico? ¿Por qué no es un "gran" candidato para una biblioteca? y ¿por qué hay un método en el JDK que hace exactamente esto? BigInteger.nextProbablePrime(). Creo que no dio la respuesta correcta y estoy seguro de que no dio la solución. –
¡Sí, realmente no existe tal función!
Hay BigInteger.nextProbablePrime()
que pueden ser adecuados si trabaja con números enteros grandes. De lo contrario, puede escribir el suyo con la suficiente facilidad. Aquí está uno que preparé antes:
static long nextPrime(long previous) {
if (previous < 2L) { return 2L; }
if (previous == 2L) { return 3L; }
long next = 0L;
int increment = 0;
switch ((int)(previous % 6L)) {
case 0: next = previous + 1L; increment = 4; break;
case 1: next = previous + 4L; increment = 2; break;
case 2: next = previous + 3L; increment = 2; break;
case 3: next = previous + 2L; increment = 2; break;
case 4: next = previous + 1L; increment = 2; break;
case 5: next = previous + 2L; increment = 4; break;
}
while (!isPrime(next)) {
next += increment;
increment = 6 - increment; // 2, 4 alternating
}
return next;
}
Este utiliza un 4 ruedas 2 para saltar sobre múltiplos de 2 y 3. Se necesita un método de prueba privilegiada:
boolean isPrime(long toTest) { ... }
que devuelve true
si su el parámetro es principal, false
en caso contrario.
no es ESA la solución? todos en esta publicación dicen que NO hay ningún método para obtener un número primo, pero sí lo hay. BigInteger.nextProbablePrime() como rossum dice. la gente se burla de la pregunta, diciendo que usted debe hacer su tarea por su cuenta, pero ellos ni siquiera saben la respuesta. –
public class nextprime {
public static void main(String args[]) {
int count = 0;
int n = 17;
for (int i = 2; i <= n/2; i++) {
if (n % i == 0) {
count++;
}
}
if (count == 0) {
System.out.println("prime");
for (int p = n + 1; p >0; p++) {
int y=0;
for (int i = 2; i <= p/2; i++) {
if (p % i == 0) {
y++;
}
}
if(y==0)
{
System.out.println("Next prime "+p);
break;
}
}
} else {
System.out.print("not prime");
}
}
}
Por lo que puedo leer esto, esto primero determinará que 17 es realmente primo, que ineficientemente determina que 18 no lo es y luego determina que 19 es. – SWeko
Primes.nextPrime(int n)
de Apache Commons Math es lo que necesita.
Java clase java.math.BigInteger contiene un método nextProbablePrime() para verificar la primalidad de un número.
import java.math.BigInteger;
public class NextPrime {
public static void main(String[] args) {
int number = 83;
Long nextPrime = nextPrime(number);
System.out.println(nextPrime + " next prime to " + number);
}
/**
* method to find next prime
* @param number
* @return boolean
*/
private static Long nextPrime(int number) {
BigInteger bValue = BigInteger.valueOf(number);
/**
* nextProbablePrime method used to generate next prime.
* */
bValue = bValue.nextProbablePrime();
return Long.parseLong(bValue.toString());
}
}
de salida: 89 próximo primer a 83
Para obtener más información, vea mi blog:
http://javaexplorer03.blogspot.in/2016/05/generate-next-prime-of-number-in-java.html
- 1. Encuentra un número primo?
- 2. Algoritmo para encontrar el número primo más grande más pequeño que x
- 3. ¿Encuentra la potencia más grande de dos menos que el número X?
- 4. Generar número primo grande con los últimos dígitos especificados
- 5. encuentra el algoritmo de submatriz más grande
- 6. Encuentra el valor más grande más pequeño que x en una matriz ordenada
- 7. Encuentra el número de ángulos internos de un polígono, más grande que 180º
- 8. ¿Cómo puedo encontrar el número primo más cercano?
- 9. Python - Encuentra el número más grande en una lista de números
- 10. Ruby: determine si un número es un número primo
- 11. Fortran: el número entero más grande y el más pequeño
- 12. ¿Una función es más grande que una matriz?
- 13. Encuentra el elemento más grande y el segundo más grande en un rango
- 14. Encuentra el más grande de tres valores en PHP
- 15. Comprobar de forma determinista si un número grande es primo o compuesto.
- 16. Ruby encuentra el siguiente en la matriz
- 17. La determinación de si un número dado es primo en Haskell
- 18. Encuentra el número N-ésimo más frecuente en la matriz
- 19. Puzzle: Encuentra el rectángulo más grande (problema de rectángulo máximo)
- 20. ¿Cuál es la forma más rápida de calcular la potencia grande de 2 módulo un número
- 21. ¿BIGINT (8) es el número entero más grande que mysql puede almacenar?
- 22. ¿Cómo puedo alinear columnas donde el número más grande o la cadena más grande es el indicador de alineación?
- 23. ¿Cuál es el número de puerto de red TCP/IP más grande permitido para IPv4?
- 24. ¿Cuál es el tipo de datos más grande para almacenar (e imprimir) un número entero?
- 25. Encuentra el número más pequeño no utilizado en SQL Server
- 26. ¿cuál es la forma más rápida de escanear un archivo muy grande en Java?
- 27. jQuery obtener el número más grande de la lista
- 28. ¿Cuál es la forma más eficiente de eliminar un número grande (más de 10.000) objetos en Core Data?
- 29. Encuentra el número más pequeño en Arreglo rotativo ordenado
- 30. ¿Qué es más grande que un doble?
No hasta que escribir uno. –
Creo que alguien de Sun/Oracle debe desarrollar esto; Pruébalo; QA eso; código revisarlo; documentarlo; y traducir la documentación; por algo que se usará RARAMENTE; sería un desperdicio de dinero. – vcsjones
¿Qué tiene que ver tu iphone con esta pregunta? – dave