А эта ошибка означает всего лишь, что
не имеет решений.
Возможно, кроме двух фильтрующих
сравнений с остатками в виде степеней двойки
либо
существует и третье с остатком в виде двойки строго в первой степени
-- Вс июл 17, 2011 13:34:16 --dmdВот так и не существует - см., например,
в википедииЛегко убедится, что
, а потому примитивного корня по модулю
не существует.
Что же касается PARI/GP - в документации сказано:
Цитата:
znprimroot(n) returns a primitive root (generator) of (Z/nZ)^*, whenever this latter group is cyclic (n = 4 or n = 2p^k or n = p^k, where p is an odd prime and k >= 0). If the group is not cyclic, the result is undefined.
Обратите внимание на выделенное предложение.
Это теперь понятно. Непонятно, почему новые версии конкретный результат возвращают, будто бы примитивный корень существует.
Код:
GP/PARI CALCULATOR Version 2.5.0 (released)
i686 running linux (ix86/GMP-5.0.2 kernel) 32-bit version
compiled: Jul 1 2011, gcc-4.2.4
(readline v5.2 enabled, extended help enabled)
Copyright (C) 2000-2011 The PARI Group
PARI/GP is free software, covered by the GNU General Public License, and comes
WITHOUT ANY WARRANTY WHATSOEVER.
Type ? for help, \q to quit.
Type ?12 for how to get moral (and possibly technical) support.
parisize = 4000000, primelimit = 500509
? p=67;M=2^p-1;znprimroot(M)
%1 = Mod(3, 147573952589676412927)
Версия 2.3.5 чётко ответила - не существует.