ó
    Š*£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          ÚQ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/ntheory/digits.pyr   r      sÐ   € ô\ 	ˆq‹	€AÜˆq‹	€AØˆ1ƒuÜÐ3Ó4Ð4ä�1‹v�rˆ1Ø‹fÜ˜!“<‰DˆAØ�H‰H�QŒKð �fð 	
�‰�ŒØ	�‰�q˜1“u�!‘ !Ô$Ø	�	‰	ŒÜ�1‹v˜‰zˆØÑØ‹}Ý Û@AÃ4ÐHóJð Jà“Ø˜˜f™mÑ,��!�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Ó	9€BØ“€B‡F�Fˆ1„IØ€Ið !Ÿf™f a RœjØ€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   