Puzzle on sum of natural numbers

Yogesh Bali
2 min readApr 11, 2020

--

How to find a missing number in first 100 natural numbers? How do you find the missing number in a given integer array of 1 to 100?

Algorithm 1 :

Use formula (N(N+1))/2 ) for calculating sum of first n natural numbers. Here, N=100 . call it result1.

Calculate the total sum of all the given numbers. call this result2.

Subtract the result2 from the result1 will give you the missing number.

Below is code in java demonstrating the same:

import java.util.Random;
import org.apache.commons.lang3.ArrayUtils;
public class SumNaturalNumbersPuzzle {
public static void main(String[] args) {
System.out.println("Puzzle on Sum of Natural Numbers");
int lastNumber = 100;
int dataArray[] = fillData(lastNumber);
int maximum = 99;
int randomMissingNumIndex = (int) (Math.random() * maximum);
int sumExpected = lastNumber * (lastNumber + 1) / 2;
System.out.println("Expected Sum:" + sumExpected);
System.out.println("Let's assume Missing Number is " + dataArray[randomMissingNumIndex]);
dataArray = ArrayUtils.remove(dataArray, randomMissingNumIndex);
int sumActual = sum(dataArray); //calling sum()
int missingNum = sumExpected - sumActual;
System.out.println("\nActual Sum:" + sumActual);
System.out.println("Actual Missing Number is:");
System.out.println("(Expected Sum - Actual Sum)="+sumExpected + "-"+sumActual+"="+missingNum);
}
static int[] fillData(int end) {
int dataArray[] = new int[100];
for (int i = 0; i < end; i++) {
dataArray[i] = i + 1;
}
return dataArray;
}
static int sum(int dataArray[]) {
int result = 0;
for (int num : dataArray) {
result += num;
}
return result;
}
}

Output:

Puzzle on Sum of Natural Numbers
--------------------------------
Expected Sum:5050
Let's assume Missing Number is 72

Actual Sum:4978
Actual Missing Number is:
(Expected Sum - Actual Sum)=5050-4978=72

Demonstrating same code in Editor image:

--

--

Yogesh Bali
Yogesh Bali

Written by Yogesh Bali

Senior Technical Lead in Thales

Responses (1)