python:判断给定的整数n能否表示成连续的m(m>1)个正整数之和
题目:输入一个正整数M,若M可表示为 m(m>1) 个连续正整数之和,则输出YES,反之输出NO;eg:输入 15因为15可以满足分解为:15 = 7+815 = 4+5+615= 1+2+3+4+5所以输出为:YES解题思路:若M满足条件,M=a+(a+1)+(a+2)+(a+3)+…+(a+n-1)= (2*a+n-1)n/2, 则在2a+n-1与n中,一个为偶数一个为奇数,而2^n没有奇因子,故M !=2n.在二进制位运算中2n & 2 ^n - 1 结果等于0;
原创
2022-04-28 11:59:10 ·
3014 阅读 ·
0 评论