Primal Check es probablemente uno de "esos" problemas difíciles en matemáticas. Entonces, ¿cuál es el mejor y más rápido algoritmo disponible para verificar la primalidad de un gran número? El más crudo y la manera más lenta, probablemente es:Algoritmo de verificación de primalidad
public static bool IsPrime(int i)
{
for (var x = 2; x < i - 1; i++)
{
if (i % x == 0)
{
return false;
}
}
return true;
}
recientemente he leído que el algoritmo RSA de 768 bits se ha resquebrajado el uso de la fuerza bruta, usando una matriz de computación en red. ¿Cómo realizan la fuerza bruta en un enorme número primo? ¿Asume cada unidad de procesamiento una serie de números, factoriza y verifica la primalidad de todos los números que se encuentran en ese rango?
¿No solo necesitas el bucle for para ir hasta la mitad del número que estás atando para encontrar la primalidad? Por ejemplo, si su número fue 100, entonces 50 es el número más grande que podría ser un factor de ello, ¿no? –
ceil (sqrt (i)) es el factor más importante que necesita para verificar – swegi
tal vez estoy siendo tonto, pero hubiera pensado que piso (sqrt (i)) era el factor más importante que necesitaba comprobar? –