splincodewd
@splincodewd
Developer

Как определить простое число?

На вход подается число X. Например: 1312312312412412512951028509102951 (оно заведомо большое), необходимо 100%-определить, что это число простое или нет.

Суть в том, что число заведомо большое, и оно не подходит под уже готовый тип данных (unsigned long long). Поэтому оно передается в виде char*, то есть передается строчкой.

Вот я и не понимаю, либо переводить эту строчку в число, но это бессмысленно, так как число негде хранить (тип данных). Либо сравнивать с готовыми числами (переведенными в строчку).

Но тут тоже проблема, если брать алгоритм в лоб:
p = 2^n - 1, где p - простое число
То вычислений может быть бесконечно много, ведь тут будет все зависеть от входного параметра

Подскажите пожалуста как можно решить задачку?
  • Вопрос задан
  • 311 просмотров
Решения вопроса 2
ThePyzhov
@ThePyzhov
iOS Ninja
Можно прибегнуть к большим числам, и работать уже с ними.
Ответ написан
DeeplessHole
@DeeplessHole
Студент матмеха СпбГУ
Как вариант, реализовать деление "столбиком" и проверять делители паками в несколько потоков.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы