Given a number N, find whether N can be expressed as sum of two or more consecutive positive numbers. 
 
Example 1:
Input:
N = 10
Output:
Yes
Explanation:
10 can be expressesd as 1+2+3+4.
Example 2:
Input:
N = 8
Output:
No
Explanation:
8 can't be expressesd sum of two or
more consecutive numbers.
Example 3:
Input:
N = 24
Output:
Yes
Explanation:
24 can be expressesd as 7+8+9.
 
Your Task:
You don't need to read input or print anything. Your task is to complete the function isSumOfConsecutive() which takes an Integer N as input and returns "Yes" and "No" accordingly.
 
Expected Time Complexity: O(1)
Expected Auxiliary Space: O(1)
 
Constraints:
1 <= N <= 10^{5}

Source: geeksforgeeks | Difficulty: EASY
Tags: Mathematics

Starter code: #User function Template for python3



class Solution:

    def isSumOfConsecutive(self, N):

        # code here 

Solutions:
import math

class Solution:

	def isSumOfConsecutive(self, n):
		if n == 0:
			return 'Yes'
		while n != 1:
			if n % 2 != 0:
				return 'Yes'
			n = n // 2
		return 'No'
if __name__ == '__main__':
	t = int(input())
	for _ in range(t):
		N = int(input())
		ob = Solution()
		print(ob.isSumOfConsecutive(N))


class Solution:

	def isSumOfConsecutive(self, n):
		if n & n - 1 and n:
			return 'Yes'
		return 'No'
if __name__ == '__main__':
	t = int(input())
	for _ in range(t):
		N = int(input())
		ob = Solution()
		print(ob.isSumOfConsecutive(N))


class Solution:

	def isSumOfConsecutive(self, N):
		if N & N - 1:
			return 'Yes'
		else:
			return 'No'


class Solution:

	def isSumOfConsecutive(self, N):
		i = 2
		output = 'No'
		while i * (i + 1) / 2 <= N:
			a = (N - i * (i + 1) / 2) / i
			if a - int(a) == 0:
				output = 'Yes'
				break
			i += 1
		return output