In all recent alphas and rc0:

sage: primitive_root(15)
2
sage: mod(2,15).multiplicative_order()
4
sage: euler_phi(15)
8
sage: [mod(2,15)^i for i in [1..8]]
[2, 4, 8, 1, 2, 4, 8, 1]

sage: b = pari(15)
sage: b.znprimroot()
Mod(2, 15)

Definition:     b.znprimroot(self)
Docstring:

       Return a primitive root modulo self, whenever it exists.

       This is a generator of the group (ZZ/nZZ)^*, whenever this
group
       is cyclic, i.e. if n=4 or n=p^k or n=2p^k, where p is an odd
prime
       and k is a natural number.

       INPUT:

       * ``self`` - positive integer equal to 4, or a power of an odd
         prime, or twice a power of an odd prime

BUT

----------------------------------------------------------------------
| Sage Version 4.4.4, Release Date: 2010-06-23                       |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
Loading Sage library. Current Mercurial branch is: hackbranch
sage: primitive_root(15)
<snip>
ArithmeticError: There is no primitive root modulo n


Please tell me that I am just missing some obvious reason this is
correct behavior.  Or has Pari changed its definition?  But
http://pari.math.u-bordeaux.fr/dochtml/html.stable/Arithmetic_functions.html#znprimroot
says

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).

The library syntax is gener(x).

- kcrisman

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to