# Check if a number can be written as sum of three consecutive integers

• Difficulty Level : Easy
• Last Updated : 10 Mar, 2022

Given an integer n, the task is to find whether n can be written as sum of three consecutive integer. If yes, find the three consecutive integer, else print “-1”.
Examples:

```Input : n = 6
Output : 1 2 3
6 = 1 + 2 + 3.

Input : n = 7
Output : -1```

Method 1: (Brute Force):
The idea is to run a loop from i = 0 to n – 2, check if (i + i+1 + i+2) is equal to n. Also, check if n is positive or negative and accordingly increment or decrement i by 1.
Below is the implementation of this approach:

## C++

 `// CPP Program to check if a number can``// be written as sum of three consecutive``// integers.``#include ``using` `namespace` `std;` `// function to check if a number can be written as sum of``// three consecutive integer.``void` `checksum(``int` `n)``{``    ``// if n is 0``    ``if` `(n == 0) {``        ``cout << ``"-1 0 1"` `<< endl;``        ``return``;``    ``}` `    ``int` `inc;` `    ``// if n is positive, increment loop by 1.``    ``if` `(n > 0)``        ``inc = 1;` `    ``// if n is negative, decrement loop by 1.``    ``else``        ``inc = -1;` `    ``// Running loop from 0 to n - 2``    ``for` `(``int` `i = 0; i <= n - 2; i += inc) {` `        ``// check if sum of three consecutive``        ``// integer is equal to n.``        ``if` `(i + i + 1 + i + 2 == n) {``            ``cout << i << ``" "` `<< i + 1``                 ``<< ``" "` `<< i + 2;``            ``return``;``        ``}``    ``}` `    ``cout << ``"-1"``;``}` `// Driver Program``int` `main()``{``    ``int` `n = 6;``    ``checksum(n);``    ``return` `0;``}`

## Java

 `// JAVA Code to check if a number``// can be written as sum of``// three consecutive integers.``import` `java.util.*;` `class` `GFG``{``    ``// function to check if a number``    ``// can be written as sum of``    ``// three consecutive integer.``    ``static` `void` `checksum(``int` `n)``    ``{``        ``// if n is 0``        ``if` `(n == ``0``) {``            ``System.out.println(``"-1 0 1"``);``            ``return``;``        ``}``     ` `        ``int` `inc;``     ` `        ``// if n is positive,``        ``// increment loop by 1.``        ``if` `(n > ``0``)``            ``inc = ``1``;``     ` `        ``// if n is negative,``        ``// decrement loop by 1.``        ``else``            ``inc = -``1``;``     ` `        ``// Running loop from 0 to n - 2``        ``for` `(``int` `i = ``0``; i <= n - ``2``; i += inc) {``     ` `            ``// check if sum of three consecutive``            ``// integer is equal to n.``            ``if` `(i + i + ``1` `+ i + ``2` `== n) {``                ``System.out.println(i + ``" "` `+``                                  ``(i + ``1``) +``                                ``" "` `+ (i + ``2``));``                ``return``;``            ``}``        ``}``     ` `        ``System.out.println(``"-1"``);``    ``}``    ` `    ``/* Driver program to test above function */``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `n = ``6``;``        ``checksum(n);``    ``}``}` `// This code is contributed by Arnav Kr. Mandal.`

## Python3

 `# Python3 code to check if a number``# can be written as sum of three``# consecutive integers.` `# function to check if a number``# can be written as sum of three``# consecutive integer.``def` `checksum(n):` `    ``# if n is 0``    ``if` `n ``=``=` `0``:``        ``print``(``"-1 0 1"``)``        ``return` `0``        ` `    ``inc ``=` `0` `    ``# if n is positive,``    ``# increment loop by 1.``    ``if` `n > ``0``:``        ``inc ``=` `1``    ` `    ``# if n is negative,``    ``# decrement loop by 1.``    ``else``:``        ``inc ``=` `-``1``    ` `    ``# Running loop from 0 to n - 2``    ``for` `i ``in` `range``(``0``, n``-``1``, inc):``    ` `        ``# check if sum of three consecutive``        ``# integer is equal to n.``        ``if` `i ``+` `i ``+` `1` `+` `i ``+` `2` `=``=` `n:``            ``print``(i ,``" "``,i ``+` `1``, ``" "``, i ``+` `2``)``            ``return` `0``            ` `    ``print``(``"-1"``)``    ` `# Driver Code``n ``=` `6``checksum(n)` `# This code is contributed by "Sharad_Bhardwaj".`

## C#

 `// C# Code to check if a number``// can be written as sum of``// three consecutive integers.``using` `System;` `class` `GFG``{``    ``// function to check if a number``    ``// can be written as sum of``    ``// three consecutive integer.``    ``static` `void` `checksum(``int` `n)``    ``{``        ``// if n is 0``        ``if` `(n == 0) {``            ``Console.WriteLine(``"-1 0 1"``);``            ``return``;``        ``}``    ` `        ``int` `inc;``    ` `        ``// if n is positive,``        ``// increment loop by 1.``        ``if` `(n > 0)``            ``inc = 1;``    ` `        ``// if n is negative,``        ``// decrement loop by 1.``        ``else``            ``inc = -1;``    ` `        ``// Running loop from 0 to n - 2``        ``for` `(``int` `i = 0; i <= n - 2; i += inc) {``    ` `            ``// check if sum of three consecutive``            ``// integer is equal to n.``            ``if` `(i + i + 1 + i + 2 == n) {``                ``Console.WriteLine(i + ``" "``                     ``+ (i + 1) +``" "` `+ (i + 2));``                ``return``;``            ``}``        ``}``    ` `        ``Console.WriteLine(``"-1"``);``    ``}``    ` `    ``/* Driver program to test above function */``    ``public` `static` `void` `Main()``    ``{``        ``int` `n = 6;``        ``checksum(n);``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ` 0)``        ``\$inc` `= 1;` `    ``// if n is negative,``    ``// decrement loop by 1.``    ``else``        ``\$inc` `= -1;` `    ``// Running loop from``    ``// 0 to n - 2``    ``for` `(``\$i` `= 0; ``\$i` `<= ``\$n` `- 2; ``\$i` `+= ``\$inc``)``    ``{` `        ``// check if sum of three consecutive``        ``// integer is equal to n.``        ``if` `(``\$i` `+ ``\$i` `+ 1 + ``\$i` `+ 2 == ``\$n``)``        ``{``            ``echo` `\$i` `, ``" "` `, ``\$i` `+ 1``                ``, ``" "` `, ``\$i` `+ 2;``            ``return``;``        ``}``    ``}` `    ``echo` `"-1"``;``}` `    ``// Driver Code``    ``\$n` `= 6;``    ``checksum(``\$n``);``    ` `// This code is contributed by anuj_67.``?>`

## Javascript

 ``

Output:

`1 2 3`

Method 2: (Efficient Approach)
The idea is to check if n is multiple of 3 or not.
Let n is sum of three consecutive integer of k – 1, k, k + 1. Therefore,
k – 1 + k + k + 1 = n
3*k = n
The three number will be n/3 – 1, n/3, n/3 + 1.

## C++

 `// CPP Program to check if a number can be``// written as sum of three consecutive integer.``#include ``using` `namespace` `std;` `// function to check if a number can be``// written as sum of three consecutive``// integers.``void` `checksum(``int` `n)``{``    ``// if n is multiple of 3``    ``if` `(n % 3 == 0)``        ``cout << n / 3 - 1 << ``" "``             ``<< n / 3 << ``" "` `<< n / 3 + 1;` `    ``// else print "-1".``    ``else``        ``cout << ``"-1"``;``}` `// Driver Program``int` `main()``{``    ``int` `n = 6;``    ``checksum(n);``    ``return` `0;``}`

## Java

 `// JAVA Code to check if a number``// can be written as sum of three``// consecutive integers.``import` `java.util.*;` `class` `GFG``{``    ``// function to check if a number``    ``// can be written as sum of three``    ``// consecutive integers.``    ``static` `void` `checksum(``int` `n)``    ``{``        ``// if n is multiple of 3``        ``if` `(n % ``3` `== ``0``)``            ``System.out.println( n / ``3` `- ``1` `+ ``" "``                 ``+ n / ``3` `+ ``" "` `+ (n / ``3` `+ ``1``));``     ` `        ``// else print "-1".``        ``else``            ``System.out.println(``"-1"``);``    ``}``    ` `    ``/* Driver program to test above function */``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `n = ``6``;``        ``checksum(n);``    ``}``}` `// This code is contributed by Arnav Kr. Mandal.`

## Python3

 `# Python3 code to check if a number``# can be written as sum of three``# consecutive integer.` `# function to check if a number``# can be written as sum of three``# consecutive integers.``def` `checksum(n):``    ``n ``=` `int``(n)``    ` `    ``# if n is multiple of 3``    ``if` `n ``%` `3` `=``=` `0``:``        ``print``(``int``(n ``/` `3` `-` `1``) ,``" "``,``         ``int``(n ``/` `3``),``" "``,``int``(n ``/` `3` `+` `1``))``    ` `    ``# else print "-1".``    ``else``:``        ``print``(``"-1"``)``        ` `# Driver Code``n ``=` `6``checksum(n)` `# This code is contributed by "Sharad_Bhardwaj".`

## C#

 `// C# Code to check if a number``// can be written as sum of three``// consecutive integers.``using` `System;` `class` `GFG``{``    ``// function to check if a number``    ``// can be written as sum of three``    ``// consecutive integers.``    ``static` `void` `checksum(``int` `n)``    ``{``        ``// if n is multiple of 3``        ``if` `(n % 3 == 0)``            ``Console.WriteLine( n / 3 - 1 + ``" "``                    ``+ n / 3 + ``" "` `+ (n / 3 + 1));``    ` `        ``// else print "-1".``        ``else``            ``Console.WriteLine(``"-1"``);``    ``}``    ` `    ``/* Driver program to``     ``test above function */``    ``public` `static` `void` `Main()``    ``{``        ``int` `n = 6;``    ` `        ``checksum(n);``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output:

`1 2 3`

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

My Personal Notes arrow_drop_up