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))