#P940. 位运算

位运算

题目描述

给定一个正整数 nn ,请你求出最小的正整数 mm ,使得同时满足以下三个条件:

n & m0n  m0nm0n\ \&\ m\ne0 \\ n\ |\ m\ne0 \\ n \oplus m\ne0

式中: &\&表示两数与,是指两数在二进制形式下按位做与运算 |表示两数或,是指两数在二进制形式下按位做或运算 \oplus 表示两数异或,是指两数在二进制形式下按位做异或运算,所谓异或,是指不同值异或结果为1,相同值异或结果为0,即:

$$0 \oplus 0 = 0 \\ 0 \oplus 1 = 1 \\ 1 \oplus 0 = 1\\ 1 \oplus 1 = 0 $$

输入格式

输入一个正整数 nn

输出格式

输出一个正整数 ,表示满足最小的正整数 mm

2
3

样例解释 1

m取1时,2&1=0,不满足 m取2时,2^2=0 (^指异或运算),不满足 m取3时,满足条件: 2&3=2 2|3=3 2^3=1

数据范围

  • 对于30%30\%的数据:1n1001 \leq n \leq 100
  • 对于60%60\%的数据:1n1051 \leq n \leq 10^5
  • 对于100%100\%的数据:1n2×1091 \leq n \leq 2\times 10^9