Given a binary string, we need to check whether that number is divisible by 64 or not after removing of some bits. If yes then print “possible” else “not possible”. We cannot make number 0 to make it divisible.
Input: 100010001 Output: Possible Explanation: We can get string 1 000 000 after removing two ones which is a representation of number 64 in the binary numerical system. Input: 100 Output: Not possible Explanation : The number is 4 which is not divisible by 64 or cannot be made possible my removing some digits.
If we have 6 zeros after any one, then we can remove other bits represent it as a multiple of 64. So we just need to check if there is a 1 before six zeros.
# Python 3 program to find if given binary
# string can become divisible by 64 after
# removing some bits.
# function to check if it is possible
# to make it a multiple of 64.
c = 0
# counter to count 0’s
n = len(s)
# length of the string
# loop which traverses right to left and
# calculates the number of zeros before 1.
i = n – 1
while(i >= 0):
if (s[i] == ‘0’):
c += 1
if (c >= 6 and s[i] == ‘1’):
i -= 1
# Driver code
if __name__ == ‘__main__’:
s = “100010001”
# This code is contributed by
Time Complexity: O(length of string)
This article is contributed by Twinkle Bajaj. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Game of Nim with removal of one stone allowed
- Check if bits of a number has count of consecutive set bits in increasing order
- Check divisibility by 7
- Repeated Unit Divisibility
- Sub-string Divisibility by 3 Queries
- Divisibility by 12 for a large number
- Sub-string Divisibility by 11 Queries
- To check divisibility of any large number by 999
- Check divisibility in a binary stream
- Check divisibility of binary string by 2^k
- Check if a large number is divisibility by 15
- Maximize profit when divisibility by two numbers have associated profits
- Maximum path sum for each position with jumps under divisibility condition
- Print numbers having first and last bits as the only set bits
- Toggle bits of a number except first and last bits