По модулю для пар - PullRequest
       17

По модулю для пар

0 голосов
/ 16 декабря 2009

Мне нужно разобраться, если простое целое число (я имею в виду 20 цифр ...) простое.

Я пытаюсь использовать метод грубой силы, но (конечно) мне нужно использовать двойные числа, чтобы содержать исходное число. Однако оператор по модулю (%) является целочисленным оператором, поэтому он для меня бесполезен!

Ответы [ 3 ]

18 голосов
/ 16 декабря 2009

Это невозможно, двойной имеет только 15 значащих цифр. Ищите реализацию класса BigInt. C специфично обсуждается здесь.

3 голосов
/ 16 декабря 2009

Поскольку двойной тип данных хранится в виде дробного значения, масштабированного до некоторой степени двух, и поскольку он имеет точность только 15 десятичных цифр, 20-значное число, сохраненное как двойное, всегда будет делиться на два, следовательно, не является простым.

1 голос
/ 16 декабря 2009

Вы ищете fmod в стандартной библиотеке C? Или возможно fmodl для long double?

...