Matemática e programação andam de mãos dadas — números estão em toda parte na programação. Seja verificando se um número é primo, gerando sequências de Fibonacci ou identificando um palíndromo, esses pequenos desafios aprimoram tanto suas habilidades matemáticas quanto sua lógica de codificação. 

Neste artigo, vamos explorar 20 exercícios de programação amigáveis para iniciantes baseados em números. Para cada um, você receberá uma rápida explicação do conceito matemático, algumas entradas e saídas de exemplo, e uma solução em Python pronta para rodar. É uma maneira divertida de praticar codificação enquanto aprende como ideias matemáticas, como quadrados perfeitos, cubos e números triangulares, podem ganhar vida no código.

1. Soma dos Primeiros N Números Naturais

O que o exercício quer:

Escreva um programa para encontrar a soma dos primeiros n números naturais. Isso ajuda você a praticar loops ou fórmulas matemáticas.

O que é um número natural?

Números naturais são os números contáveis começando de 1: 1, 2, 3, 4, …

Entrada de Exemplo

5

Saída de Exemplo

15

Solução em Python

# Leia n e calcule a soma dos primeiros n números naturais usando a fórmula de forma fechada
n = int(input("Digite n: "))
# Usando aritmética inteira (//) para evitar floats
total = n * (n + 1) // 2
print(total)

2. Verificador de Par ou Ímpar

O que o exercício quer:

Receba uma entrada inteira e imprima se é par ou ímpar.

O que é par/ímpar?

Números pares são divisíveis por 2 (por exemplo, 2, 4, 6). Números ímpares deixam resto 1 quando divididos por 2 (por exemplo, 1, 3, 5).

Entrada de Exemplo

7

Saída de Exemplo

7 é ímpar

Solução em Python

# Determine se o número inteiro de entrada é par ou ímpar usando módulo
n = int(input("Digite um número: "))
if n % 2 == 0:
    print(f"{n} é par")
else:
    print(f"{n} é ímpar")

3. Verificador de Número Primo

O que o exercício quer:

Escreva um programa para verificar se um número dado é primo.

O que é um número primo?

Um número primo é maior que 1 e divisível apenas por 1 e por ele mesmo (por exemplo, 2, 3, 5, 7).

Entrada de Exemplo

13

Saída de Exemplo

13 é primo

Solução em Python

# Verifique a primalidade tentando a divisão até sqrt(n)
n = int(input("Digite um número: "))
if n < 2:
    print(f"{n} não é primo")
else:
    for d in range(2, int(n**0.5) + 1):
        if n % d == 0:
            print(f"{n} não é primo")
            break
    else:
        print(f"{n} é primo")

4. Soma dos Dígitos

O que o exercício quer:

Encontre a soma de todos os dígitos de um número.

Por que a soma dos dígitos é importante?

As somas dos dígitos aparecem em regras de divisibilidade e vários quebra-cabeças numéricos (por exemplo, divisível por 3 se a soma dos dígitos for divisível por 3).

Entrada de Exemplo

1234

Saída de Exemplo

10

Solução em Python

# Some os dígitos iterando sobre os caracteres e convertendo para inteiros
s = input("Digite um número: ").strip()
digit_sum = sum(int(ch) for ch in s if ch.isdigit())
print(digit_sum)

5. Verificador de Número Palindrômico

O que o exercício quer:

Verifique se um número é lido da mesma forma de trás para frente.

O que é um número palindrômico?

Um número como 121, 1331 ou 12321 que permanece o mesmo quando invertido.

Entrada de Exemplo

12321

Saída de Exemplo

12321 é um palíndromo

Solução em Python

# Compare a string com sua inversa para testar palíndromo
s = input("Digite um número: ").strip()
print(f"{s} é um palíndromo" if s == s[::-1] else f"{s} não é um palíndromo")

6. Encontre Todos os Fatores de um Número

O que o exercício quer:

Liste todos os números que dividem n de forma exata.

O que são fatores?

Fatores são inteiros que você pode multiplicar para obter n. Para 12, os fatores são 1, 2, 3, 4, 6, 12.

Entrada de Exemplo

12

Saída de Exemplo

1 2 3 4 6 12

Solução em Python

# Gere todos os divisores testando de 1..n
n = int(input("Digite um número: "))
factors = [d for d in range(1, n+1) if n % d == 0]
print(" ".join(map(str, factors)))

7. Verificador de Número Perfeito

O que o exercício quer:

Verifique se n é igual à soma de seus divisores próprios (excluindo ele mesmo).

O que é um número perfeito?

Números como 6 (=1+2+3) e 28 (=1+2+4+7+14) são números perfeitos.

Entrada de Exemplo

28

Saída de Exemplo

28 é um número perfeito

Solução em Python

# Some os divisores próprios (excluindo n) e compare com n
n = int(input("Digite um número: "))
proper = [d for d in range(1, n) if n % d == 0]
print(f"{n} é um número perfeito" if sum(proper) == n else f"{n} não é um número perfeito")

8. Verificador de Número Armstrong (Narcisista)

O que o exercício quer:

Verifique se n é igual à soma de seus dígitos elevados à potência do número de dígitos.

O que é um número Armstrong?

Exemplo: 153 = 1³ + 5³ + 3³; 9474 = 9⁴ + 4⁴ + 7⁴ + 4⁴.

Entrada de Exemplo

153

Saída de Exemplo

153 é um número Armstrong

Solução em Python

# Eleva cada dígito à potência do total de dígitos e soma
s = input("Digite um número: ").strip()
p = len(s)
arm = sum(int(ch)**p for ch in s)
print(f"{s} é um número Armstrong" if arm == int(s) else f"{s} não é um número Armstrong")

9. Verificador de Quadrado Perfeito

O que o exercício quer:

Verifique se um número é um quadrado perfeito.

O que é um quadrado perfeito?

Um número que pode ser escrito como k² (por exemplo, 4, 9, 16, 25).

Entrada de Exemplo

49

Saída de Exemplo

49 é um quadrado perfeito

Solução em Python

# Use a raiz quadrada inteira para evitar problemas de ponto flutuante
import math
n = int(input("Digite um número: "))
print(f"{n} é um quadrado perfeito" if math.isqrt(n)**2 == n else f"{n} não é um quadrado perfeito")

10. Verificador de Cubo Perfeito

O que o exercício quer:

Verifique se um número é um cubo perfeito.

O que é um cubo perfeito?

Um número que pode ser expresso como k³ (por exemplo, 8, 27, 64).

Entrada de Exemplo

27

Saída de Exemplo

27 é um cubo perfeito

Solução em Python

# Aproximar a raiz cúbica arredondando e verificar elevando de volta
n = int(input("Digite um número: "))
croot = round(n ** (1/3))
print(f"{n} é um cubo perfeito" if croot**3 == n else f"{n} não é um cubo perfeito")

11. Gerador de Sequência de Fibonacci

O que o exercício quer:

Gere os primeiros n números de Fibonacci.

O que é um número de Fibonacci?

Sequência começando em 0, 1 onde cada novo termo é a soma dos dois anteriores: 0, 1, 1, 2, 3, 5, 8, …

Entrada de Exemplo

7

Saída de Exemplo

0 1 1 2 3 5 8

Solução em Python

# Construa iterativamente a sequência de Fibonacci usando dois rastreadores
n = int(input("Digite n: "))
a, b = 0, 1
seq = []
for _ in range(n):
    seq.append(a)
    a, b = b, a + b
print(" ".join(map(str, seq)))

12. Verifique se um Número está na Sequência de Fibonacci

O que o exercício quer:

Verifique se um número dado pertence à sequência de Fibonacci.

Fato matemático:

n é Fibonacci se (5n² + 4) ou (5n² − 4) é um quadrado perfeito.

Entrada de Exemplo

21

Saída de Exemplo

21 é um número de Fibonacci

Solução em Python

# Use o teste de quadrado perfeito 5n^2±4 para verificar a pertença a Fibonacci
import math

def is_square(x: int) -> bool:
    return math.isqrt(x)**2 == x

n = int(input("Digite um número: "))
if is_square(5*n*n + 4) or is_square(5*n*n - 4):
    print(f"{n} é um número de Fibonacci")
else:
    print(f"{n} não é um número de Fibonacci")

13. Verificador de Número Triangular

O que o exercício quer:

Verifique se n é triangular: n = k(k+1)/2 para algum inteiro k.

O que é um número triangular?

Eles formam triângulos de pontos: 1, 3, 6, 10, 15, …

Entrada de Exemplo

15

Saída de Exemplo

15 é um número triangular

Solução em Python

# Resolva k(k+1)/2 = n verificando k = floor((sqrt(8n+1)-1)/2)
import math
n = int(input("Digite um número: "))
k = int((math.isqrt(8*n + 1) - 1) // 2)
print(f"{n} é um número triangular" if k * (k + 1) // 2 == n else f"{n} não é um número triangular")

14. Número Racional (Decimal → Fração)

O que o exercício quer:

Converta um decimal em uma fração simplificada p/q.

O que é um número racional?

Um número que pode ser expresso como uma razão de inteiros (por exemplo, 0.75 = 3/4).

Entrada de Exemplo

0.75

Saída de Exemplo

3/4

Solução em Python

# Use Fraction para converter decimal em forma p/q e simplificar
from fractions import Fraction
x = float(input("Digite um decimal: "))
print(Fraction(x).limit_denominator())

15. Verificador de Número Triangular

O que o exercício quer:

Verifique se um número é triangular, significando que pode formar um triângulo equilátero.

O que é um número triangular?

Números triangulares são somas dos primeiros n números naturais: 1, 3, 6, 10, 15…

Entrada de Exemplo

10

Saída de Exemplo

10 é um número triangular

Solução em Python

import math

n = int(input("Digite um número: "))
# Fórmula: se 8n+1 é um quadrado perfeito, então n é triangular
check = 8 * n + 1
if int(math.isqrt(check))**2 == check:
    print(f"{n} é um número triangular")
else:
    print(f"{n} não é um número triangular")

16. Gerador de Sequência de Fibonacci

O que o exercício quer:

Gere a sequência de Fibonacci até n termos.

O que é a sequência de Fibonacci?

É uma sequência onde cada número é a soma dos dois anteriores: 0, 1, 1, 2, 3, 5, 8…

Entrada de Exemplo

7

Saída de Exemplo

0 1 1 2 3 5 8

Solução em Python

n = int(input("Digite o número de termos: "))
a, b = 0, 1
for _ in range(n):
    print(a, end=" ")
    a, b = b, a + b

17. Soma dos Dígitos

O que o exercício quer:

Calcule a soma de todos os dígitos em um número dado.

O que isso significa?

Exemplo: os dígitos de 1234 são 1+2+3+4 = 10.

Entrada de Exemplo

1234

Saída de Exemplo

10

Solução em Python

n = input("Digite um número: ")
# Converta cada caractere de volta para int e some
s = sum(int(d) for d in n)
print(s)

18. Inverter um Número

O que o exercício quer:

Inverta os dígitos do número dado.

O que isso significa?

Exemplo: 12345 se torna 54321.

Entrada de Exemplo

12345

Saída de Exemplo

54321

Solução em Python

n = input("Digite um número: ")
# Use slicing para inverter
print(n[::-1])

19. Máximo Divisor Comum (MDC)

O que o exercício quer:

Encontre o maior número que divide dois inteiros sem resto.

O que é MDC?

O maior divisor comum a ambos os números. Exemplo: mdc(12, 18) = 6.

Entrada de Exemplo

12 18

Saída de Exemplo

6

Solução em Python

import math

a, b = map(int, input("Digite dois números: ").split())
# Use math.gcd para eficiência
print(math.gcd(a, b))

20. Mínimo Múltiplo Comum (MMC)

O que o exercício quer:

Encontre o menor número que é divisível por ambos os inteiros dados.

O que é MMC?

O mínimo múltiplo comum de dois números. Exemplo: mmc(4, 6) = 12.

Entrada de Exemplo

4 6

Saída de Exemplo

12

Solução em Python

import math

a, b = map(int, input("Digite dois números: ").split())
# Fórmula: mmc(a, b) = abs(a*b) // mdc(a, b)
print(abs(a*b) // math.gcd(a, b))