+
    i                     L    ^ RI Ht ^ RIHtHt ^ RIHt RR ltR	R lt	R	R ltR# )
    )defaultdict)multisetis_palindromic)as_intNc                   \        V4      p\        V 4      p V^8  d   \        R4      h\        V 4      . rCW18  d!   \        W14      w  r5VP	                  V4       K&  VP	                  V4       TP	                  V ^ 8  d   V) MT4       VP                  4        \        V4      ^,
          pVe4   Wb8  d   \        RV : RV: R24      hWb8  d   ^ .W&,
          ,          VR&   V# )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 1zFor z, at least z digits are needed.:   r   N)r   
ValueErrorabsdivmodappendreverselen)nbdigitsxyrndigs   &&&    t/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/sympy/ntheory/digits.pyr   r      s    \ 	q	Aq	A1u3441vr1f!<DAHHQK		q1u!!$			1vz} @A4HJ Jfm,#    c           	         \        \        \        \        W4      4      P	                  4       4      pW9   d   VP                  V4       V# VP                  V) 4       V# )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                ,    \        \        W4      ^4      # )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)

)_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   