dezembro 18, 2025

Algarismo em Código

Por admin

Sobre a Matemática

Algarismos são símbolos usados para escrever números. Atualmente, no mundo todo, são usados os algarismos indo-arábico: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

A conversão de um número inteiro para outra base está fundamentada no sistema de numeração posicional. Um número é representado como a soma de potências da base multiplicadas por seus algarismos. Para converter um número da base 10 para outra base 𝑏, utiliza-se o método das divisões sucessivas, no qual o número é dividido repetidamente pela base desejada, e os restos dessas divisões formam os algarismos da nova representação, lidos da última divisão para a primeira. Esse conceito é amplamente utilizado em matemática e computação, permitindo representar números em: Base 2 (binária) – usada internamente pelos computadores, Base 8 (octal), Base 16 (hexadecimal) e outras bases até 36, usando letras para representar valores maiores que 9.

Um palíndromo é um número cuja sequência de algarismos permanece a mesma quando lida da esquerda para a direita ou da direita para a esquerda. Do ponto de vista matemático, trata-se de uma propriedade relacionada à simetria da representação numérica, pois o número possui uma estrutura espelhada em torno do seu centro. Exemplos de números palíndromos: 121, 34443.

Sobre o Código

Na linguagem de programação Python,

import – é usado para trazer módulos ou funções externas para o código, permitindo reutilizar funcionalidades já prontas.

collections – é um módulo da biblioteca padrão que oferece tipos de dados especializados, como counter, deque, defaultdict, etc.

counter – é uma classe do módulo collections que conta automaticamente quantas vezes cada elemento aparece em uma lista, string ou outro iterável.

def – é a palavra-chave usada para definir funções. Indica o incício da criação de uma função.

str() – converte um valor para o tipo string (texto). Ex.: str(123) vira “123”.

. (ponto) – é o operador de acesso. Serve para acessar métodos, atributos ou funções internas de objetos, módulos e classes.

.replace – é o método de string que substitui trechos de texto. Ex.: “casa”.replace(“a”,”e”) -> “cese”

return – finaliza a execução de uma função e envia um valor de volta para quem chamou essa função.

for ... in – é a estrutura de repetição usada para percorrer elementos de um iterável (lista, string, tupla, range…). Ex.: for x in lista:.

if – é uma estrutura condicional. Executa um bloco de código somente quando uma condição é verdadeira.

dict() – cria um dicionário, tipo de dado formado por pares chave-valor. dict(a=1, b=2) -> {“a”:1, “b”:2}.

startswtith – é o método de string que verifica se o texto começa com determinado prefixo. Ex.: “python”.startswith(“py”) → True.

else – é parte opcional de uma estrutura condicional. É executada quando o if (ou elif) não é verdadeiro.

.split – é o método que divide uma string em partes, gerando uma lista. Ex.: “a b c”.split() → [“a”,”b”,”c”].

int() – converte um valor para o tipo inteiro, se possível. Ex.: int(“45”) → 45.

while – é a estrutura de repetição que executa um bloco de código enquanto uma condição for verdadeira.

> (maior) – é o operador relacional que compara dois valores e retorna True quando o primeiro é maior que o segundo.

divmod – é a função que retorna o quociente e o resto de uma divisão inteira. Ex.: divmod(10, 3) → (3, 1).

print() – é a função usada para exibir informações na tela.

f"" (f-string) – é a forma moderna e prática de formatar strings inserindo valores diretamente dentro do texto. Ex.: f”Resultado: {x}”.

# – é usado para criar comentários ao código, que são notas para se entender melhor o que o código faz.

Vamos ao código…

from collections import Counter

def separar_algarismos(numero):
    """
    Recebe um número inteiro ou real (int, float ou string)
    e retorna uma lista com seus algarismos (0–9).
    """
    numero = str(numero).replace("-", "").replace(".", "")
    return [int(c) for c in numero if c.isdigit()]
Código Python (.py)O que faz
from collections import CounterImporta a ferramenta Counter, que serve para contar quantas vezes cada algarismo aparece no número.
def separar_algarismos(numero):Cria uma função para pegar apenas os algarismos do número.
numero = str(numero)Transforma o valor em texto para analisar caractere por caractere.
.replace(“-“, “”).replace(“.”, “”)Remove o sinal e o ponto decimal.
return [int(c) for c in numero if c.isdigit()]Devolve a lista com todos os algarismos extraídos do número.
def soma_algarismos(numero):
    """Retorna a soma dos algarismos do número."""
    return sum(separar_algarismos(numero))
Código Python (.py)O que faz
def soma_algarismos(numero):Cria uma função para somar os algarismos.
return sum(separar_algarismos(numero))Entrega o valor da soma de todos os dígitos encontrados.
def frequencia_algarismos(numero):
    """Retorna um dicionário com quantas vezes cada dígito aparece."""
    return dict(Counter(separar_algarismos(numero)))
Código Python (.py)O que faz
def frequencia_algarismos(numero):Cria uma função para somar os algarismos.
return dict(Counter(separar_algarismos(numero)))Retorna um dicionário mostrando quantas vezes cada algarismo aparece.
def inverter(numero):
    """
    Inverte a ordem dos algarismos da parte inteira.
    Ex.: 123 → 321 ; -908 → -809
    """
    sinal = "-" if str(numero).startswith("-") else ""
    numero = str(numero).replace("-", "")
    parte_inteira = numero.split(".")[0]
    invertido = parte_inteira[::-1]
    return int(sinal + invertido)
Código Python (.py)O que faz
def inverter(numero):Define a função para inverter os dígitos da parte inteira.
sinal = “-” if str(numero).startswith(“-“) else “”Verifica se o número começa com sinal negativo. Se começar com -, guarda esse sinal; caso contrário, guarda uma string vazia.
numero = str(numero).replace(“-“, “”)Converte o número em texto e remove o sinal negativo para trabalhar apenas com os algarismos.
parte_inteira = numero.split(“.”)[0]Separa apenas a parte inteira do número.
invertido = parte_inteira[::-1]Inverte a ordem dos algarismos.
return int(sinal + invertido)Retorna um dicionário mostrando quantas vezes cada algarismo aparece.
def eh_palindromo(numero):
    """
    Verifica se o número possui a mesma sequência de algarismos
    lida da esquerda para a direita e vice-versa.
    """
    numero = str(numero).replace("-", "").split(".")[0]
    return numero == numero[::-1]
Código Python (.py)O que faz
def eh_palindromo(numero):Cria função para verificar palíndromo.
numero = str(numero).replace(“-“, “”).split(“.”)[0]Remove o sinal negativo, separa o número pelo ponto decimal e mantém somente a parte inteira.
return numero == numero[::-1]Retorna True (verdadeiro) se for palíndromo e False se não for.
def converter_base(n, base):
    """
    Converte um número inteiro positivo para outra base (2 a 36).
    Aceita bases binária, octal, hexadecimal e outras.
    """
    if n == 0:
        return "0"
        
    algarismos = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    resultado = ""
    
    while n > 0:
        n, resto = divmod(n, base)
        resultado = algarismos[resto] + resultado
    
    return resultado
Código Python (.py)O que faz
def converter_base(n, base):Cria função para converter um número para outra base.
if n == 0:Verifica se o número a ser convertido é zero.
return “0”Quando o número é zero, já devolve diretamente a representação dele.
algarismos = “0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”Cria uma sequência de símbolos que representam os algarismos usados na conversão de bases numéricas, permitindo representar números da base 2 até a base 36.
resultado = “”Cria uma variável vazia que será usada para montar o número convertido para outra base.
while n > 0:Repete o processo enquanto o número ainda for maior que zero.
n, resto = divmod(n, base)Divide o número pela base escolhida e guarda o quociente em n e o resto da divisão.
resultado = algarismos[resto] + resultadoUsa o resto como índice para obter o algarismo correspondente e o adiciona no início do resultado final.
return resultadoRetorna a representação final do número convertido para outra base.
# =========================================================
# TESTES E DEMONSTRAÇÃO
# =========================================================

numeros = [7, 12345, -908, 1200.45, "00321", -45.067, 1000000]

for n in numeros:
    print(f"===== Número: {n} =====")
    print("Algarismos:", separar_algarismos(n))
    print("Soma dos algarismos:", soma_algarismos(n))
    print("Frequência:", frequencia_algarismos(n))
    print("Invertido:", inverter(n))
    print("É palíndromo?", eh_palindromo(n))
    print()


# Exemplos de conversão de base
print("=== Conversão de Bases ===")
for n in [10, 255, 1024]:
    print(
        f"{n} -> binário: {converter_base(n, 2)}, "
        f"octal: {converter_base(n, 8)}, "
        f"hexadecimal: {converter_base(n, 16)}"
    )
Código Python (.py)O que faz
numeros = [7, 12345, -908, 1200.45, “00321”, -45.067, 1000000]Cria uma lista com vários exemplos de números para testar o funcionamento do código.
for n in numeros:Percorre cada número da lista, um por vez.
print(f”===== Número: {n} =====”)Mostra qual número está sendo analisado no momento.
print(“Algarismos:”, separar_algarismos(n))Exibe a lista de algarismos encontrados chamando a função que extrai os algarismos do número.
print(“Soma dos algarismos:”, soma_algarismos(n))Mostra o resultado da soma dos dígitos.
print(“Frequência:”, frequencia_algarismos(n))Exibe quantas vezes cada algarismo aparece.
print(“Invertido:”, inverter(n))Mostra o número com os algarismos da parte inteira invertidos.
print(“É palíndromo?”, eh_palindromo(n))Informa se o número é um palíndromo ou não.
print()Pula uma linha para organizar a saída no terminal.

Saída do código (valor de retorno)…

===== Número: 7 =====
Algarismos: [7]
Soma dos algarismos: 7
Frequência: {7: 1}
Invertido: 7
É palíndromo? True

===== Número: 12345 =====
Algarismos: [1, 2, 3, 4, 5]
Soma dos algarismos: 15
Frequência: {1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
Invertido: 54321
É palíndromo? False

===== Número: -908 =====
Algarismos: [9, 0, 8]
Soma dos algarismos: 17
Frequência: {9: 1, 0: 1, 8: 1}
Invertido: -809
É palíndromo? False

===== Número: 1200.45 =====
Algarismos: [1, 2, 0, 0, 4, 5]
Soma dos algarismos: 12
Frequência: {1: 1, 2: 1, 0: 2, 4: 1, 5: 1}
Invertido: 21
É palíndromo? False

===== Número: 00321 =====
Algarismos: [0, 0, 3, 2, 1]
Soma dos algarismos: 6
Frequência: {0: 2, 3: 1, 2: 1, 1: 1}
Invertido: 12300
É palíndromo? False

===== Número: -45.067 =====
Algarismos: [4, 5, 0, 6, 7]
Soma dos algarismos: 22
Frequência: {4: 1, 5: 1, 0: 1, 6: 1, 7: 1}
Invertido: -54
É palíndromo? False

===== Número: 1000000 =====
Algarismos: [1, 0, 0, 0, 0, 0, 0]
Soma dos algarismos: 1
Frequência: {1: 1, 0: 6}
Invertido: 1
É palíndromo? False

=== Conversão de Bases ===
10 -> binário: 1010, octal: 12, hexadecimal: A
255 -> binário: 11111111, octal: 377, hexadecimal: FF
1024 -> binário: 10000000000, octal: 2000, hexadecimal: 400

Fonte:

  • Editora Didática Paulista.Ensino Didático 2000: Ensino Fundamental e Ensino Médio. Sorocaba: Editora Didática Paulista, [s.d.].
  • Códigos e comentários gerados por ChatGPT com revisão nossa.
  • https://docs.python.org/pt-br/3/ [Documentação Oficial do Python]