Crie um programa que receba um número natural
e que exiba na tela a soma dos
primeiros números naturais. Por exemplo, se
, o programa deverá exibir
.
Passo 1
O enunciado pede que a gente faça um programa que leia um número natural
e mostre na tela a soma dos
primeiros números naturais. Ex.: se
, deve imprimir “1+2+3+4=10”.
Conteúdo: lógica de programação (entrada de dados, laço de repetição, acumulador) e, opcionalmente, fórmula de soma de progressão. Vamos precisar de:
Conteúdo: lógica de programação (entrada de dados, laço de repetição, acumulador) e, opcionalmente, fórmula de soma de progressão. Vamos precisar de:
- Ler um valor inteiro
- Um laço (for) para contar de 1 até
- Uma variável acumuladora para somar
- Montar a string “1+2+…+N=resultado”
Passo 2
Antes de codificar, entenda a teoria da soma dos primeiros naturais. A soma
é uma progressão aritmética com primeiro termo , último termo
e
termos. A fórmula é
é uma progressão aritmética com primeiro termo
Isso já dá o resultado direto, mas como exercício de programação vamos somar “um a um” usando um for.
Passo 3
Agora, a ideia do loop:
- Inicializo uma variável
soma = 0 termos = ""
- Para cada
de 1 até : - Adiciono
na soma: soma += i
- Concateno o termo numa string
termos += str(i) + "+"
- Adiciono
No final,
soma
tem o valor total, e termos
fica algo como "1+2+3+4+"
. Aí só removo o último “+” e junto o resultado.Passo 4
Vamos ver o código completo em Python, linha a linha, com comentários:
# Leitura do valor N
N = int(input("Digite um número natural N: ")) # converte a entrada para inteiro
# Inicializações
soma = 0 # vai acumular a soma de 1 a N
termos = "" # vai construir a parte "1+2+...+N"
# Laço de repetição de 1 até N
for i in range(1, N+1):
soma += i # soma = soma + i
termos += str(i) + "+" # vai gerando "1+", "1+2+", etc.
# Remove o '+' extra do final e imprime
termos = termos[:-1] # tira o último caractere
print(f"{termos}={soma}") # exibe, por exemplo, "1+2+3+4=10"
Explicando em miúdos:
input()
pega o que o usuário digita como texto;int(...)
transforma em número.for i in range(1, N+1):
rodai = 1, 2, ..., N
.soma += i
vai acumulando.termos += str(i) + "+"
constrói a parte textual.- No fim, tiramos o “+” a mais e mostramos tudo numa única linha com f-string.
Resposta
N = int(input("Digite um número natural N: "))
soma = 0
termos = ""
for i in range(1, N+1):
soma += i
termos += str(i) + "+"
termos = termos[:-1]
print(f"{termos}={soma}")