#!/usr/bin/env python3 def generate_number_groups(max_number): """Generate groups of numbers based on binary representation.""" groups = [] bit_position = 0 while (1 << bit_position) <= max_number: group = [] for num in range(1, max_number + 1): if num & (1 << bit_position): group.append(num) groups.append(group) bit_position += 1 return groups def demo_guess(target_number): """Demo the guessing process with a known target number.""" print(f"šŸŽÆ Demo: Guessing the number {target_number}") print("=" * 50) max_number = 63 groups = generate_number_groups(max_number) result = 0 for i, group in enumerate(groups): print(f"\nGroup {i + 1} (bit position {i}):") print("Numbers:", " ".join(map(str, group))) is_in_group = target_number in group print(f"Is {target_number} in this group? {'YES' if is_in_group else 'NO'}") if is_in_group: result += (1 << i) print(f"Adding 2^{i} = {1 << i} to result") print(f"Current result: {result}") print(f"\nšŸŽ‰ Final answer: {result}") print(f"āœ… Correct: {result == target_number}") return result if __name__ == "__main__": # Demo with a few different numbers test_numbers = [7, 23, 42, 1, 63] for num in test_numbers: demo_guess(num) print("\n" + "="*60 + "\n")