Check if a number can be written as sum of three consecutive integers
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
Explanation: 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 <bits/stdc++.h> 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
<?php // PHP Program 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. function checksum( $n ) { // if n is 0 if ( $n == 0) { echo "-1 0 1" ; return ; } $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 ( $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
<script> // Javascript 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. function checksum(n) { // if n is 0 if (n == 0) { document.write( "-1 0 1" ); return ; } var 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 (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) { document.write(i + " " + (i + 1) + " " + (i + 2)); return ; } } document.write( "-1" ); } /* Driver program to test above function */ var n = 6; checksum(n); // This code is contributed by gauravrajput1 </script> |
1 2 3
Time Complexity: O(N)
Auxiliary Space: O(1)
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 <bits/stdc++.h> 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
<?php // PHP 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 // integers. function checksum( $n ) { // if n is multiple of 3 if ( $n % 3 == 0) echo $n / 3 - 1, " " , $n / 3, " " , $n / 3 + 1; // else print "-1". else echo "-1" ; } // Driver Program $n = 6; checksum( $n ); // This code is contributed by aj_36 ?> |
Javascript
<script> // javascript 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 integers. function checksum(n) { // if n is multiple of 3 if (n % 3 == 0) document.write(n / 3 - 1 + " " + n / 3 + " " + (n / 3 + 1)); // else print "-1". else document.write( "-1" ); } /* Driver program to test above function */ var n = 6; checksum(n); // This code is contributed by todaysgaurav </script> |
1 2 3
Time Complexity: O(1)
Auxiliary Space: O(1)
Contact Us