Инструменты криптографии для python 3

Необходимо избавиться от части с 2 питанием N с самого начала.

2-е Редактирование волшебное выражение для m ниже должно быть

m = N - (N & (N-1));

и не, как записано

Конец 2-го редактирования

m = N & (N-1); // the lawest bit of N
N /= m;
byte = N & 0x0F;
if ((m % 2) || (byte !=1 && byte !=9))
  return false;

1-е Редактирование:

Незначительное улучшение:

m = N & (N-1); // the lawest bit of N
N /= m;
if ((m % 2) || (N & 0x07 != 1))
  return false;

Конец 1-го редактирования

Теперь продолжаются, как обычно. Таким образом, к тому времени, когда Вы добираетесь до части с плавающей точкой, Вы уже, избавился от всех чисел, чья часть с 2 питанием нечетна (приблизительно половина), и затем Вы только рассматриваете 1/8 того, что оставляют. Т.е. Вы выполняете часть с плавающей точкой на 6% чисел.

16
задан Martin Trigaux 14 April 2012 в 14:27
поделиться