
    \h                     J    S SK Jr  S SKJrJr  S SKJr  SS jrS	S jr	S	S jrg)
    )defaultdict)multisetis_palindromic)as_intNc                    [        U5      n[        U 5      n US:  a  [        S5      e[        U 5      / pCX1:  a%  [        X15      u  p5UR	                  U5        X1:  a  M%  UR	                  U5        UR	                  U S:  a  U* OU5        UR                  5         [        U5      S-
  nUb)  Xb:  a  [        SU < SU< S35      eXb:  a  S/X&-
  -  USS& U$ )a  
Return a list of the digits of ``n`` in base ``b``. The first
element in the list is ``b`` (or ``-b`` if ``n`` is negative).

Examples
========

>>> from sympy.ntheory.digits import digits
>>> digits(35)
[10, 3, 5]

If the number is negative, the negative sign will be placed on the
base (which is the first element in the returned list):

>>> digits(-35)
[-10, 3, 5]

Bases other than 10 (and greater than 1) can be selected with ``b``:

>>> digits(27, b=2)
[2, 1, 1, 0, 1, 1]

Use the ``digits`` keyword if a certain number of digits is desired:

>>> digits(35, digits=4)
[10, 0, 0, 3, 5]

Parameters
==========

n: integer
    The number whose digits are returned.

b: integer
    The base in which digits are computed.

digits: integer (or None for all digits)
    The number of digits to be returned (padded with zeros, if
    necessary).

See Also
========
sympy.core.intfunc.num_digits, count_digits
   zb must be greater than 1r      zFor z, at least z digits are needed.)r   
ValueErrorabsdivmodappendreverselen)nbdigitsxyrndigs          L/var/www/auris/envauris/lib/python3.13/site-packages/sympy/ntheory/digits.pyr   r      s    \ 	q	Aq	A1u3441vr1f!<DAHHQK f 	
	q1u!!$			1vz} @A4HJ Jfm,!A    c           	          [        [        [        [        X5      5      R	                  5       5      nX;   a  UR                  U5        U$ UR                  U* 5        U$ )a  
Return a dictionary whose keys are the digits of ``n`` in the
given base, ``b``, with keys indicating the digits appearing in the
number and values indicating how many times that digit appeared.

Examples
========

>>> from sympy.ntheory import count_digits

>>> count_digits(1111339)
{1: 4, 3: 2, 9: 1}

The digits returned are always represented in base-10
but the number itself can be entered in any format that is
understood by Python; the base of the number can also be
given if it is different than 10:

>>> n = 0xFA; n
250
>>> count_digits(_)
{0: 1, 2: 1, 5: 1}
>>> count_digits(n, 16)
{10: 1, 15: 1}

The default dictionary will return a 0 for any digit that did
not appear in the number. For example, which digits appear 7
times in ``77!``:

>>> from sympy import factorial
>>> c77 = count_digits(factorial(77))
>>> [i for i in range(10) if c77[i] == 7]
[1, 3, 7, 9]

See Also
========
sympy.core.intfunc.num_digits, digits
)r   intr   r   itemspop)r   r   rvs      r   count_digitsr   K   sK    N 
S(6!<0668	9BBFF1II !ffaRjIr   c                 ,    [        [        X5      S5      $ )az  return True if ``n`` is the same when read from left to right
or right to left in the given base, ``b``.

Examples
========

>>> from sympy.ntheory import is_palindromic

>>> all(is_palindromic(i) for i in (-11, 1, 22, 121))
True

The second argument allows you to test numbers in other
bases. For example, 88 is palindromic in base-10 but not
in base-8:

>>> is_palindromic(88, 8)
False

On the other hand, a number can be palindromic in base-8 but
not in base-10:

>>> 0o121, is_palindromic(0o121)
(81, False)

Or it might be palindromic in both bases:

>>> oct(121), is_palindromic(121, 8) and is_palindromic(121)
('0o171', True)

r	   )_palindromicr   )r   r   s     r   r   r   w   s    > qa((r   )
   N)r!   )
collectionsr   sympy.utilities.iterablesr   r   r    sympy.utilities.miscr   r   r    r   r   <module>r&      s     # N 'AH)X)r   