也就是说,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
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
解决方案 »
- 程序会不定时运行,如何让程序中某一过程每3天执行一次(如果电脑没开机错过了"3天"则只要大于3天就执行一次),且执行一次后就3天内这个过程都不要执行了,如此循环
- 菜鸟求助 用SQL的查询
- VB中如何执行mssql中的扩展存储过程
- VB题目求解答
- 关于SSTAB2的问题?在线等待
- 如何使窗体的大小不可改变
- 个人、家庭理财方面的软件,请免费试用,可提供源代码
- ??????问题??????(在线等待)!!!!!!!
- 如何自动提取word文件名到文件内部的顶行
- 袁飞大哥能不能给我你的getdisksn的源码?
- VB 中如何输出一个图片所有黑色点的坐标呢? 我哪地方做错了?
- ActiveReport自定义纸张
但是如果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)
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 的幂
矛盾!
当连续数为偶数时,(偶数/2)*中位数(偶数+奇数=奇数)<>2的N次方
当连续相加的个数为奇数个时,其和肯定能被这个个数(奇数)整除,所以它的和不是2的n次方;
当连续相加的个数为偶数个时,其和肯定为奇数,所以它的和也不是2的n次方。
而连续正整数的个数只能是这2种情况。所以m个连续的正整数相加,其和肯定不是2的n次方。感谢poslin,Worldy,dianyancao,tiger_zhao 等大大的回答,还有各位捧场的朋友。
就等worldy来结帖了……
当连续相加的个数为偶数个时,其和肯定为奇数,所以它的和也不是2的n次方。
这个结论不成立:(n+1)+(n+2)+(n+3)+(n+4)=4n+10 是个偶数,推而广之,个数为4的倍数时,连续数之和肯定为偶数
还是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