И снова о простых числах Софи Жермен
Более простой способ проверки простых чисел Софи Жермен на простоту
Год назад я писал о генерации простых чисел Софи Жермен. Вкратце напомню: p — простое число Софи Жермен, если q = 2p+1, тоже простое число. Простые числа Софи Жермен применяются в криптографии (в частности, в протоколе обмена ключами Диффи–Хеллмана–Меркле). Ранее я использовал вероятностный метод Рабина–Миллера для проверки обоих чисел (p и q) на простоту. Вероятностная проверка (вкупе с другими [...]
← Вернуться к полной версии записи «И снова о простых числах Софи Жермен»…
Автор: Vladimir; опубликовано в: C/C++; метки: C/C++, GMP, простые числа, Софи ЖерменАпр
2009
Комментарии к статье «И снова о простых числах Софи Жермен» (4) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «И снова о простых числах Софи Жермен»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.


Спасибо за простые и наглядные примерчики кода!! Сейчас как раз знакомлюсь с GMP –
) Кое в чем помогли Ваши программы.
разбираюсь что к чему, читаю доки, примеры, тыкаюсь методом тыка…
Кстати, sophie1.c у меня выдавала segfault (gcc ver. 4.1.2). Дело в sj_mpz_pow(). Там у Вас переменные не инициализированы в момент присваивания. Вот так все заработало:
mpz_init_set(i, n);
mpz_init_set(z, x);
Спасибо, код поправил
Только вместо
mpz_init_set_ui(y, 1);должно бытьmpz_set_ui(y, 1);— передаваемые в процедуру параметры инициализируются вызывающей стороной. Два вызоваmpz_init()безmpz_clear()чреваты утечкой памяти.Для устранения утечек памяти я бы советовал Deleaker
Или классика жанра — Valgrind