作为友好的寒假集训营,小红当然要送给大家一道签到题!
小红拿到了一个正整数 xx 。她想构造一个正整数 yy,满足以下性质:
输出描述:
构造的正整数 yy 。如果有多个合法解,输出任意即可。可以证明,无论 xx 是多少,最终一定是有合法解的。
示例1
输入
5
输出
95
说明
95是5的倍数,满足第一个性质。95的二进制表示是 '1011111',包含了子串 '101',满足第二个性质。
另外,45、90、125等答案也都是合法解。
def make(num):
n=2
bnum = bin(num)
while True:
res = num*n
one = bnum.count("1")-bin(res).count("1")
if (bnum in bin(res)) and (one != 0):
yield res
n += 1
if __name__ == "__main__":
a=make(5)
for i in range(10):
print(next(a))