# Sum of the digits of a number N written in all bases from 2 to N/2

• Last Updated : 08 Apr, 2021

Given an integer N, the task is to find the sum of the digits of the number N written in all the bases from 2 to N / 2.
Examples:

Input: N = 6
Output:
In base 2, 6 is represented as 110.
In base 3, 6 is represented as 20.
Sum = 1 + 1 + 0 + 2 + 0 = 4
Input: N = 8
Output:

Approach:

• For every base from 2 to (n / 2) calculate the digits of n in the particular base with the following:
• Calculate the remainder on dividing n by base and the remainder is one of the digits of n in that base.
• Add the digit to the sum and update n as (n = n / base).
• Repeat the above steps while n > 0
• Print the sum calculated in the previous steps.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function to calculate the sum of the digits of``// n in the given base``int` `solve(``int` `n, ``int` `base)``{``    ``// Sum of digits``    ``int` `sum = 0;` `    ``while` `(n > 0) {` `        ``// Digit of n in the given base``        ``int` `remainder = n % base;` `        ``// Add the digit``        ``sum += remainder;``        ``n = n / base;``    ``}` `    ``return` `sum;``}` `// Function to calculate the sum of``// digits of n in bases from 2 to n/2``void` `SumsOfDigits(``int` `n)``{``    ``// to store digit sum in all bases``    ``int` `sum = 0;` `    ``// function call for multiple bases``    ``for` `(``int` `base = 2; base <= n / 2; ++base)``        ``sum += solve(n, base);` `    ``cout << sum;``}` `// Driver program``int` `main()``{``    ``int` `n = 8;``    ``SumsOfDigits(n);``    ``return` `0;``}`

## Java

 `// Java implementation of the approach` `import` `java.io.*;` `class` `GFG {``    `  `// Function to calculate the sum of the digits of``// n in the given base``static` `int` `solve(``int` `n, ``int` `base)``{``    ``// Sum of digits``    ``int` `sum = ``0``;` `    ``while` `(n > ``0``) {` `        ``// Digit of n in the given base``        ``int` `remainder = n % base;` `        ``// Add the digit``        ``sum += remainder;``        ``n = n / base;``    ``}` `    ``return` `sum;``}` `// Function to calculate the sum of``// digits of n in bases from 2 to n/2``static` `void` `SumsOfDigits(``int` `n)``{``    ``// to store digit sum in all bases``    ``int` `sum = ``0``;` `    ``// function call for multiple bases``    ``for` `(``int` `base = ``2``; base <= n / ``2``; ++base)``        ``sum += solve(n, base);` `    ``System.out.println(sum);``}` `// Driver program`  `    ``public` `static` `void` `main (String[] args) {``        ``int` `n = ``8``;``    ``SumsOfDigits(n);``    ``}``    ` `}``// This code is contributed by anuj_67..`

## Python3

 `# Python 3 implementation of the approach``from` `math ``import` `floor``# Function to calculate the sum of the digits of``# n in the given base``def` `solve(n, base):``    ``# Sum of digits``    ``sum` `=` `0` `    ``while` `(n > ``0``):``        ``# Digit of n in the given base``        ``remainder ``=` `n ``%` `base` `        ``# Add the digit``        ``sum` `=` `sum` `+` `remainder``        ``n ``=` `int``(n ``/` `base)``    ` `    ``return` `sum` `# Function to calculate the sum of``# digits of n in bases from 2 to n/2``def` `SumsOfDigits(n):``    ` `    ``# to store digit sum in all base``    ``sum` `=` `0``    ``N ``=` `floor(n``/``2``)``    ``# function call for multiple bases``    ``for` `base ``in` `range``(``2``,N``+``1``,``1``):``        ``sum` `=` `sum` `+` `solve(n, base)` `    ``print``(``sum``)` `# Driver program``if` `__name__ ``=``=` `'__main__'``:``    ``n ``=` `8``    ``SumsOfDigits(n)``    ` `# This code is contributed by``# Surendra_Gangwar`

## C#

 `// C# implementation of the approach``using` `System;` `class` `GFG``{``    ` `// Function to calculate the sum of``// the digits of n in the given base``static` `int` `solve(``int` `n, ``int` `base1)``{``    ``// Sum of digits``    ``int` `sum = 0;` `    ``while` `(n > 0)``    ``{` `        ``// Digit of n in the given base``        ``int` `remainder1 = n % base1;` `        ``// Add the digit``        ``sum += remainder1;``        ``n = n / base1;``    ``}` `    ``return` `sum;``}` `// Function to calculate the sum of``// digits of n in base1s from 2 to n/2``static` `void` `SumsOfDigits(``int` `n)``{``    ``// to store digit sum in all bases``    ``int` `sum = 0;` `    ``// function call for multiple bases``    ``for` `(``int` `base1 = 2;``             ``base1 <= n / 2; ++base1)``        ``sum += solve(n, base1);` `    ``Console.WriteLine(sum);``}` `// Driver Code``public` `static` `void` `Main (String []args)``{``    ``int` `n = 8;``    ``SumsOfDigits(n);``}``}` `// This code is contributed by Arnab Kundu`

## PHP

 ` 0)``    ``{` `        ``// Digit of n in the given base``        ``\$remainder` `= ``\$n` `% ``\$base``;` `        ``// Add the digit``        ``\$sum` `+= ``\$remainder``;``        ``\$n` `= ``\$n` `/ ``\$base``;``    ``}` `    ``return` `\$sum``;``}` `// Function to calculate the sum of``// digits of n in bases from 2 to n/2``function` `SumsOfDigits(``\$n``)``{``    ``// to store digit sum in all bases``    ``\$sum` `= 0;` `    ``// function call for multiple bases``    ``for` `(``\$base` `= 2;``         ``\$base` `<= ``\$n` `/ 2; ++``\$base``)``        ``\$sum` `+= solve(``\$n``, ``\$base``);` `    ``echo` `\$sum``;``}` `// Driver Code``\$n` `= 8;``SumsOfDigits(``\$n``);` `// This code is contributed``// by Akanksha Rai``?>`

## Javascript

 ``
Output:
`7`

My Personal Notes arrow_drop_up