Search code examples
pythonarrayssum

How to print only the last result of an array of sum in python


I want to calculate the sum of the natural numbers from 1 up to an input number. I wrote this code:

number=int(input("enter a natural number"))
if number<0: 
    print("The number is not positive") 
else:   
   n=0   
   for i in range (1,number+1):
        n+=i
        print(n)

But it prints multiple numbers instead. For example, if the user puts five, the program should print 15, but I get this:

1
3
6
10
15

How can I fix the code so that only 15 appears?


Solution

  • You have all the steps because your print statement is in your for loop. Change it like this:

    number = int(input("Enter a positive natural number: "))
    if number < 0:
        print("The number needs to be positive")
        exit()  # Stops the program
    
    result = 0
    for i in range(1, number + 1):
        result += i
    
    print(result)    # We print after the calculations
    

    There's also a mathematical alternative (see here):

    number = int(input("Enter a positive natural number: "))
    if number < 0:
        print("The number needs to be positive")
        exit()  # Stops the program
    print(number * (number + 1) / 2)