In this article, we will learn about python program to find sum of **N** Natural Numbers.

## Getting Started

The task is to find the sum of **N** natural numbers using python program. For example,

If **N = 10**, then output should be **55** because sum of first **N** natural numbers in **55** **i.e. 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55**.

If **N = 5**, then output should be **15** because **1 + 2 + 3 + 4 + 5 = 15**.

We can do it in below ways –

- Using for loop
- Using Arithmetic Formula
- Using Recursion
- Using sum() and list Comprehension
- Using While Loop
- Using math.comb() Function

## Using for loop

We can simply run a python for loop to find sum of **N** natural numbers as shown below –

def sum_of_n_numbers(n): sum = 0 for i in range(1, n + 1): sum += i return sum # Get user input for N n = int(input("Enter a positive integer N: ")) result = sum_of_n_numbers(n) print(f"The sum of the first {n} natural numbers is: {result}")

Here,

- Initialise a variable –
**sum**by 0. - Run a for loop from
**1**to**n**. - In each iteration, add iteration value in sum. For example, in ith iteration, add
**i**in**sum**. - Using this way, we will finally get sum of all values from
**0**to**n**. - Finally, result is printed using
**print()**function.

Output:

Enter a positive integer N: 12 The sum of the first 12 natural numbers is: 78

## Using Arithmetic Formula

There is an arithmetic formula

Sum of N Natural numbers = n * (n + 1) / 2

We can use this arithmetic formula to write python program to find sum of **n** natural numbers. This best way to find sum of **n** natural numbers in python program.

def sum_of_n_numbers(n): return int(n * (n + 1) / 2) # Get user input for N n = int(input("Enter a positive integer N: ")) result = sum_of_n_numbers(n) print(f"The sum of the first {n} natural numbers is: {result}")

Here,

**sum_of_n_numbers**method returns sum of**N**natural numbers.- Finally, we print the result using print() function.

Output:

Enter a positive integer N: 5 The sum of the first 5 natural numbers is: 15

## Using Recursion

We can write program to find sum of **N** natural numbers recursively too. It’s just a recursive approach of for loop program.

def sum_of_n_numbers(n): if n == 1: return 1 else: return n + sum_of_n_numbers(n - 1) # Get user input for N n = int(input("Enter a positive integer N: ")) result = sum_of_n_numbers(n) print(f"The sum of the first {n} natural numbers is: {result}")

Here,

**sum_of_n_numbers**method is getting called recursively until the last value 1.- In the last call, this method will return 1.
- After that, second last call will be executed. In this call,
**1 + 2**will be returned. - Subsequently, all method calls will be executed and we will get sum of
**n**numbers.

Output:

Enter a positive integer N: 4 The sum of the first 4 natural numbers is: 10

## Using sum() and list Comprehension

Built-in method **sum()** returns sum of numbers provided as arguments. We can use **sum()** method too to write python program to find sum of **N** natural numbers.

def sum_of_n_numbers(n): return sum([i for i in range(1, n + 1)]) # Get user input for N n = int(input("Enter a positive integer N: ")) result = sum_of_n_numbers(n) print(f"The sum of the first {n} natural numbers is: {result}")

Here,

**sum()**method takes list of values as arguments.**range()**method returns immutable sequence numbers between specified start and stop value. Here, it’s between 1 and (n + 1)

Output:

Enter a positive integer N: 10 The sum of the first 10 natural numbers is: 55

## Using while Loop

Instead of python for loop, we can also use python while loop to find sum of **N** natural numbers as shown below –

def sum_of_n_numbers(n): sum = 0 i = 1 while i <= n: sum += i i += 1 return sum # Get user input for N n = int(input("Enter a positive integer N: ")) result = sum_of_n_numbers(n) print(f"The sum of the first {n} natural numbers is: {result}")

Here,

**sum_of_n_numbers**method returns sum of**N**natural numbers using while loop.- At first, initialise
**sum = 0**,**i = 1**. - Now, run a while loop from
**i = 1**to**i = n**. - In each iteration, add value of
**i**to**sum**. Then, increment the value**i**by**1**. - Finally, we get value of variable
**sum**as sum of**N**natural numbers. - Returned value is then printed using
**print()**method.

Output:

Enter a positive integer N: 10 The sum of the first 10 natural numbers is: 55

## Using reduce() Function

**reduce()** function applies a function to the elements of iterable. We can use this trick to write python program to find sum of **N** natural numbers as shown below –

from functools import reduce def sum_of_n_numbers(n): return reduce(lambda x, y: x + y, range(1, n + 1)) # Get user input for N n = int(input("Enter a positive integer N: ")) result = sum_of_n_numbers(n) print(f"The sum of the first {n} natural numbers is: {result}")

Output:

Enter a positive integer N: 12 The sum of the first 12 natural numbers is: 78

## Using math.comb() Function

**math.comb()** is basically a built-in method in **math** module in python. **math.comb(n, k)** returns number of ways to choose **k** items from **n** without repetition and without order.

Mathematically, **math.comb(n, k)** is equivalent to **n! / (k! * (n – k)!)**.

So, math.comb(n + 1, 2) is equivalent to

=> (n + 1)! / (2! * ((n + 1) – 2)!)

=> (n + 1)! / (2! * ((n – 1)!)

=> (n + 1) * n * (n – 1)! / (2 * 1 * (n – 1)!)

=> (n + 1) * n * (n – 1)! / (2 * (n – 1)!)

=> (n + 1) * n / 2

Notice that it’s same formula which we have used earlier in this article.

import math def sum_of_n_numbers(n): return math.comb(n + 1, 2) # Get user input for N n = int(input("Enter a positive integer N: ")) result = sum_of_n_numbers(n) print(f"The sum of the first {n} natural numbers is: {result}")

Output:

Enter a positive integer N: 10 The sum of the first 10 natural numbers is: 55

Learn about python at official Doc