也就是说,2的n次方不等于几个连续的正整数之和。附测试工具:
Private Sub Command1_Click()
Cls
Dim i As Long, s As String, TotalNum As Long
TotalNum = Val(InputBox("输入总和", , 1000))
For i = 1 To TotalNum / 2
    If TotalNum / i - (i - 1) / 2 < 1 Then Me.Caption = "循环到" & i: Exit For
    If TotalNum Mod i = 0 Then
        If i Mod 2 = 1 Then '连续个数为奇数
            s = TotalNum / i - (i - 1) / 2 & "到" & TotalNum / i + (i - 1) / 2
            Print s
        End If
    ElseIf TotalNum Mod i = i * 0.5 Then '连续个数为偶数
        s = TotalNum / i - (i - 1) / 2 & "到" & TotalNum / i + (i - 1) / 2
        Print s
    End If
Next
End Sub

解决方案 »

  1.   

    呵呵,这么晚了还没睡,用不着写代码吧?连续正整数的公差D是 1 吗?,如果公差D是奇数,比如D=1,是正确的。
    但是如果D是偶数,能构造下列等差数组,满足总和为2^(m+p)形式,(m,p∈ℕ+)设等差数列首项为A1,公差为D,一共N项,那么总和S=(N*(N-1)*D/2)+N*A1
    构造D=2*n,N=2^p,A1=2^m-(2^p-1)*n  (n,p,m∈ℕ+)
    那么总和S=n*(2^p*(2^p-1)+2^p*(2^m-(2^p-1)*n))
    整理得S=2^(m+p)即若公差D是偶数有反例,比如1,3,5,7,  S=2^4如果D是奇数,根据上述丢番图方程的解:
    A1=(2^m-(2^p-1)*D)/2
    不难看出这里的D必须含有因子2。综上所述,连续的正整数的公差D为奇数时,总和S不会等于2的n次方(n∈Z)
      

  2.   

    网络弄好了,3根电信1根联通,掉线切换、DNS转换完毕。没睡意,去修修设备去……
      

  3.   

    反证:
    n 个连续正整数 {a1,a2,...,am} 的和 S 的计算公式为 S = n * (a1 + an) / 2
    假设 S 为 2 的幂,那么 n 和 (a1 + an) 都必须是 2 的幂
    由连续整数 an = a1 + n - 1
    推得 (a1 + an) = 2 * a1 + n - 1
    其中 2 * a1 和 n 都是偶数,所以 (a1 + an) 是奇数,不可能是 2 的幂
    矛盾!
      

  4.   

    连续数的特征就是有中位数当连续数为奇数时,奇数*中位数<>2的N次方
    当连续数为偶数时,(偶数/2)*中位数(偶数+奇数=奇数)<>2的N次方
      

  5.   

    我数学只有初中水平…我的理解跟poslin差不多:因为2的n次方其因数不含奇数。(2×2×2×2......×2)
    当连续相加的个数为奇数个时,其和肯定能被这个个数(奇数)整除,所以它的和不是2的n次方;
    当连续相加的个数为偶数个时,其和肯定为奇数,所以它的和也不是2的n次方。
    而连续正整数的个数只能是这2种情况。所以m个连续的正整数相加,其和肯定不是2的n次方。感谢poslin,Worldy,dianyancao,tiger_zhao  等大大的回答,还有各位捧场的朋友。
    就等worldy来结帖了……
      

  6.   


    当连续相加的个数为偶数个时,其和肯定为奇数,所以它的和也不是2的n次方。
    这个结论不成立:(n+1)+(n+2)+(n+3)+(n+4)=4n+10  是个偶数,推而广之,个数为4的倍数时,连续数之和肯定为偶数
      

  7.   


    还是LZ有道理
    假设连和个数为奇数ms=a1+a2+ak (k=m-1)
    s=(a1+ak)*m/2 肯定为整数
    因为m为奇数,所以,(a1+ak)/2=sa肯定为整数所以
    s=sa * m
    包含有奇数的因素,但2^K 任何因子肯定都是偶数,因此s肯定不会是2^K