# Sum of all subsets of a set formed by first n natural numbers

• Difficulty Level : Medium
• Last Updated : 10 Jun, 2022

Given a number n, we need to find the sum of all the elements from all possible subsets of a set formed by first n natural numbers.
Examples :

```Input :  n = 2
Output : 6
Possible subsets are {{1}, {2},
{1, 2}}. Sum of elements in subsets
is 1 + 2 + 1 + 2 = 6

Input :  n = 3
Output : 24
Possible subsets are {{1}, {2}, {3},
{1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}
Sum of subsets is :
1 + 2 + 3 + (1 + 2) + (1 + 3) +
(2 + 3) + (1 + 2 + 3)```

A simple solution is to generate all subsets. For every subset, compute its sum and finally return overall sum.
An efficient solution is based on the fact that every number from 1 to n appears exactly 2(n-1) times. So our required sum is (1 + 2 + 3 + ..+ n) * 2(n-1). The sum can be written as (n * (n + 1)/2) * 2(n-1)

## C++

 `// CPP program to find sum of all subsets``// of a set.``#include ``using` `namespace` `std;` `unsigned ``long` `long` `findSumSubsets(``int` `n)``{``    ``// sum of subsets is (n * (n + 1) / 2) *``    ``// pow(2, n-1)``    ``return` `(n * (n + 1) / 2) * (1 << (n - 1));``}` `int` `main()``{``    ``int` `n = 3;``    ``cout << findSumSubsets(n);``    ``return` `0;``}`

## Java

 `// Java program to find sum of all subsets``// of a set.` `class` `GFG {``    ``static` `long` `findSumSubsets(``int` `n)``    ``{``        ``// sum of subsets is (n * (n + 1) / 2) *``        ``// pow(2, n-1)``        ``return` `(n * (n + ``1``) / ``2``) * (``1` `<< (n - ``1``));``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `n = ``3``;``        ``System.out.print(findSumSubsets(n));``    ``}``}` `// This code is contributed by Anant Agarwal.`

## Python3

 `# Python program to find``# sum of all subsets``# of a set.` `def` `findSumSubsets( n):` `    ``# sum of subsets``    ``# is (n * (n + 1) / 2) *``    ``# pow(2, n-1)``    ``return` `(n ``*` `(n ``+` `1``) ``/` `2``) ``*` `(``1` `<< (n ``-` `1``))``    ` `# Driver code    ``n ``=` `3``print``(findSumSubsets(n))` `# This code is contributed``# by sunnysingh.`

## C#

 `// C# program to find sum of all subsets``// of a set.``using` `System;` `class` `GFG {` `    ``static` `long` `findSumSubsets(``int` `n)``    ``{` `        ``// sum of subsets is (n * (n + 1) / 2) *``        ``// pow(2, n-1)``        ``return` `(n * (n + 1) / 2) * (1 << (n - 1));``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``int` `n = 3;` `        ``Console.WriteLine(findSumSubsets(n));``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output :

`24`

Time Complexity: O(1)
Auxiliary Space: O(1)

This article is contributed by Raj Kumar. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.