Posted on by Kalkicode
Code Bit Logic

# Check that if given number is expressed sum of consecutive or not

The given problem is to check whether a given number can be expressed as the sum of two or more consecutive numbers. For example, the number 9 can be expressed as 4 + 5 or 2 + 3 + 4, but the number 4 cannot be expressed as the sum of any two or more consecutive numbers.

## Problem Statement

Given an integer 'num', we need to determine if 'num' can be expressed as the sum of two or more consecutive numbers.

## Example

Let's take a few examples to better understand the problem:

1. For 'num' = 9: The consecutive sums of 9 are:

• 2 + 3 + 4 = 9
• 4 + 5 = 9
2. For 'num' = 4: The consecutive sums of 4 are:

• There are no two or more consecutive numbers that add up to 4.

## Pseudocode

``````// Function to check whether given number is sum of consecutive two or more numbers
consecutive_sum(num):
// Check if the number is negative, if yes, return
if num < 0:
return

// Print the given number
print "Number:", num

// Check if the number is not 0 and not a power of 2
if num != 0 AND ((num AND (num - 1)) != 0):
print "Yes"
else:
print "No"

// Main function
main():
// Call the consecutive_sum function with example numbers
consecutive_sum(9)
consecutive_sum(4)
``````
1. We start by defining the function 'consecutive_sum(num)' to check if a given number can be expressed as the sum of two or more consecutive numbers.
2. Within the function, we check if the 'num' is less than 0. If it is negative, we return from the function since negative numbers cannot be expressed as the sum of consecutive numbers.
3. Next, we print the given number to display it in the output.
4. We then check if 'num' is not equal to 0 and whether 'num' is not a power of 2 (using the bitwise AND operation and subtraction). If this condition is true, it means 'num' can be expressed as the sum of two or more consecutive numbers, so we print "Yes".
5. If the condition in step 4 is false, it means 'num' cannot be expressed as the sum of two or more consecutive numbers, and we print "No".
6. The main function 'main()' is called to test the 'consecutive_sum()' function with example numbers, which are 9 and 4 in this case.

## Algorithm Explanation

1. We begin by defining the 'consecutive_sum(num)' function.
2. We handle the case where 'num' is negative, and in such cases, we return without further processing, as negative numbers cannot be expressed as the sum of two or more consecutive numbers.
3. Next, we check if 'num' is not equal to 0 and whether (num & (num - 1)) is not equal to 0. This bitwise operation checks if 'num' is not a power of 2.
4. If 'num' is not a power of 2, it means 'num' can be expressed as the sum of two or more consecutive numbers, and we print "Yes".
5. Otherwise, if 'num' is a power of 2 or 0, it cannot be expressed as the sum of two or more consecutive numbers, and we print "No".

## Code Solution

Here given code implementation process.

``````// C program
// Check that if given number is expressed sum of consecutive or not
#include <stdio.h>

// Check whether given number is sum of consecutive two or more numbers
void consecutive_sum(int num)
{
if (num < 0)
{
return;
}
// Given number
printf("\n Number : %d", num);
if (num != 0 && ((num & (num - 1)) != 0))
{
printf("\n Yes ");
}
else
{
printf("\n No ");
}
}
int main(int argc, char
const *argv[])
{
consecutive_sum(9);
consecutive_sum(4);
return 0;
}``````

#### Output

`````` Number : 9
Yes
Number : 4
No``````
``````/*
Java program
Check that if given number is expressed sum of consecutive or not
*/
public class Consecutive
{
// Check whether given number is sum of consecutive two or more numbers
public void consecutiveSum(int num)
{
if (num < 0)
{
return;
}
// Given number
System.out.print("\n Number : " + num);
// Check that number is constructed by two or more consecutive numbers or not
if (num != 0 && ((num & (num - 1)) != 0))
{
// When Yes
System.out.print("\n Yes ");
}
else
{
System.out.print("\n No ");
}
}
public static void main(String[] args)
{
// num = 9
//     = 4+5 (consecutive number)
// num = 4
}
}``````

#### Output

`````` Number : 9
Yes
Number : 4
No``````
``````// Include header file
#include <iostream>
using namespace std;

/*
C++ program
Check that if given number is expressed sum of consecutive or not
*/

class Consecutive
{
public:
// Check whether given number is sum of consecutive two or more numbers
void consecutiveSum(int num)
{
if (num < 0)
{
return;
}
// Given number
cout << "\n Number : " << num;
// Check that number is constructed by two or more consecutive numbers or not
if (num != 0 && ((num &(num - 1)) != 0))
{
// When Yes
cout << "\n Yes ";
}
else
{
cout << "\n No ";
}
}
};
int main()
{
// num = 9
//     = 4+5 (consecutive number)
// num = 4
return 0;
}``````

#### Output

`````` Number : 9
Yes
Number : 4
No``````
``````// Include namespace system
using System;
/*
C# program
Check that if given number is expressed sum of consecutive or not
*/
public class Consecutive
{
// Check whether given number is sum of consecutive two or more numbers
public void consecutiveSum(int num)
{
if (num < 0)
{
return;
}
// Given number
Console.Write("\n Number : " + num);
// Check that number is constructed by two or more consecutive numbers or not
if (num != 0 && ((num & (num - 1)) != 0))
{
// When Yes
Console.Write("\n Yes ");
}
else
{
Console.Write("\n No ");
}
}
public static void Main(String[] args)
{
// num = 9
//     = 4+5 (consecutive number)
// num = 4
}
}``````

#### Output

`````` Number : 9
Yes
Number : 4
No``````
``````<?php
/*
Php program
Check that if given number is expressed sum of consecutive or not
*/
class Consecutive
{
// Check whether given number is sum of consecutive two or more numbers
public	function consecutiveSum(\$num)
{
if (\$num < 0)
{
return;
}
// Given number
echo "\n Number : ". \$num;
// Check that number is constructed by two or more consecutive numbers or not
if (\$num != 0 && ((\$num & (\$num - 1)) != 0))
{
// When Yes
echo "\n Yes ";
}
else
{
echo "\n No ";
}
}
}

function main()
{
// num = 9
//     = 4+5 (consecutive number)
// num = 4
}
main();``````

#### Output

`````` Number : 9
Yes
Number : 4
No``````
``````/*
Node Js program
Check that if given number is expressed sum of consecutive or not
*/
class Consecutive
{
// Check whether given number is sum of consecutive two or more numbers
consecutiveSum(num)
{
if (num < 0)
{
return;
}
// Given number
process.stdout.write("\n Number : " + num);
// Check that number is constructed by two or more consecutive numbers or not
if (num != 0 && ((num & (num - 1)) != 0))
{
// When Yes
process.stdout.write("\n Yes ");
}
else
{
process.stdout.write("\n No ");
}
}
}

function main()
{
// num = 9
//     = 4+5 (consecutive number)
// num = 4
}
main();``````

#### Output

`````` Number : 9
Yes
Number : 4
No``````
``````#   Python 3 program
#   Check that if given number is expressed sum of consecutive or not

class Consecutive :
#  Check whether given number is sum of consecutive two or more numbers
def consecutiveSum(self, num) :
if (num < 0) :
return

#  Given number
print("\n Number : ", num, end = "")
#  Check that number is constructed by two or more consecutive numbers or not
if (num != 0 and((num & (num - 1)) != 0)) :
#  When Yes
print("\n Yes ", end = "")
else :
print("\n No ", end = "")

def main() :
#  num = 9
#      = 4+5 (consecutive number)
#  num = 4

if __name__ == "__main__": main()``````

#### Output

`````` Number :  9
Yes
Number :  4
No``````
``````#   Ruby program
#   Check that if given number is expressed sum of consecutive or not

class Consecutive
#  Check whether given number is sum of consecutive two or more numbers
def consecutiveSum(num)
if (num < 0)
return
end

#  Given number
print("\n Number : ", num)
#  Check that number is constructed by two or more consecutive numbers or not
if (num != 0 && ((num & (num - 1)) != 0))
#  When Yes
print("\n Yes ")
else
print("\n No ")
end

end

end

def main()
#  num = 9
#      = 4+5 (consecutive number)
#  num = 4
end

main()``````

#### Output

`````` Number : 9
Yes
Number : 4
No ``````
``````/*
Scala program
Check that if given number is expressed sum of consecutive or not
*/
class Consecutive
{
// Check whether given number is sum of consecutive two or more numbers
def consecutiveSum(num: Int): Unit = {
if (num < 0)
{
return;
}
// Given number
print("\n Number : " + num);
// Check that number is constructed by two or more consecutive numbers or not
if (num != 0 && ((num & (num - 1)) != 0))
{
// When Yes
print("\n Yes ");
}
else
{
print("\n No ");
}
}
}
object Main
{
def main(args: Array[String]): Unit = {
var task: Consecutive = new Consecutive();
// num = 9
//     = 4+5 (consecutive number)
// num = 4
}
}``````

#### Output

`````` Number : 9
Yes
Number : 4
No``````
``````/*
Swift 4 program
Check that if given number is expressed sum of consecutive or not
*/
class Consecutive
{
// Check whether given number is sum of consecutive two or more numbers
func consecutiveSum(_ num: Int)
{
if (num < 0)
{
return;
}
// Given number
print("\n Number : ", num, terminator: "");
// Check that number is constructed by two or more consecutive numbers or not
if (num  != 0 && ((num & (num - 1))  != 0))
{
// When Yes
print("\n Yes ", terminator: "");
}
else
{
print("\n No ", terminator: "");
}
}
}
func main()
{
// num = 9
//     = 4+5 (consecutive number)
// num = 4
}
main();``````

#### Output

`````` Number :  9
Yes
Number :  4
No``````
``````/*
Kotlin program
Check that if given number is expressed sum of consecutive or not
*/
class Consecutive
{
// Check whether given number is sum of consecutive two or more numbers
fun consecutiveSum(num: Int): Unit
{
if (num < 0)
{
return;
}
// Given number
print("\n Number : " + num);
// Check that number is constructed by two or more consecutive numbers or not
if (num != 0 && ((num and(num - 1)) != 0))
{
// When Yes
print("\n Yes ");
}
else
{
print("\n No ");
}
}
}
fun main(args: Array < String > ): Unit
{
// num = 9
//     = 4+5 (consecutive number)
// num = 4
}``````

#### Output

`````` Number : 9
Yes
Number : 4
No``````

## Explanation of Output

1. For 'num' = 9, the output is "Yes" because 9 can be expressed as the sum of two or more consecutive numbers (2 + 3 + 4 or 4 + 5).

2. For 'num' = 4, the output is "No" because 4 cannot be expressed as the sum of two or more consecutive numbers.

## Time Complexity

The time complexity of the given code is O(1). This is because the 'consecutive_sum' function performs some basic operations that do not depend on the input size. The bitwise AND and subtraction operations are constant-time operations, and thus the overall time complexity remains constant.

## Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

Categories
Relative Post