Проверка приоритетности, вероятно, является одной из «трудных» проблем в математике. Итак, что является лучшим и быстрым алгоритмом, доступным для проверки простоты огромного числа. Самый грубый и самый медленный путь, вероятно, является:Алгоритм проверки приоритетности
public static bool IsPrime(int i)
{
for (var x = 2; x < i - 1; i++)
{
if (i % x == 0)
{
return false;
}
}
return true;
}
Недавно я прочитал, что 768-битный RSA алгоритм был взломан с помощью грубой силы, с помощью сетки вычислений массива. Как они выполняют грубую силу на огромном простое число? Каждый блок обработки занимает ряд номеров, учитывает его и проверяет на соответствие всего количества, которое находится в этом диапазоне?
Вам не нужен только цикл for, чтобы доходить до половины числа, которое вы связываете, чтобы найти примитивность? например, если ваш номер равен 100, то 50 - это самое большое число, которое могло бы быть его фактором, нет? –
ceil (sqrt (i)) - самый большой фактор, который вам нужно проверить – swegi
Возможно, я немой, но я подумал, что пол (sqrt (i)) был самым важным фактором, который вам нужно было проверить? –