数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
楼主: ysr

几个vb小程序

[复制链接]
 楼主| 发表于 2023-1-7 16:12 | 显示全部楼层
本帖最后由 ysr 于 2023-1-7 12:05 编辑

Private Sub Command1_Click()
'验证李明波幂和猜想的程序
Dim a, b
a = Val(Text1)
jb = Val(Text2)
ja2 = a
Do While a <= jb
q = a ^ (1 / 2)
a2 = 2
Do While InStr(Log(a) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop

r = Log(a) / Log(a2)
a3 = a - Int(q) ^ 2
If InStr(r, ".") = 0 Then
Text3 = Text3 & a & "=" & a2 & "^" & r & vbCrLf
ElseIf a3 = 1 Then
Text3 = Text3 & a & "=" & Int(q) & "^" & 2 & "+1" & vbCrLf
ElseIf a3 = 2 Then
Text3 = Text3 & a & "=" & Int(q) & "^" & 2 & "+1+1" & vbCrLf
Else
a4 = a - 1
a2 = 2
Do While InStr(Log(a4) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop
r1 = Log(a4) / Log(a2)
If InStr(r1, ".") = 0 Then
Text3 = Text3 & a & "=" & "1+" & a2 & "^" & r1 & vbCrLf
Else
a5 = a - 2
a2 = 2
Do While InStr(Log(a5) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop
r2 = Log(a5) / Log(a2)
If InStr(r2, ".") = 0 Then
Text3 = Text3 & a & "=" & "1+1+" & a2 & "^" & r2 & vbCrLf
Else
ja1 = 2
jc = ksm5(Trim(a), Trim(q))
If InStr(jc, "无解") > 0 Then
s = s + 1
Text3 = Text3 & a & "=无解" & vbCrLf
Else
Text3 = Text3 & jc
End If

End If
End If
End If

a = a + 1
Loop

Combo1 = ja2 & "~" & jb & "之间,有" & Val(s) & "个无解:" & vbCrLf & Text3


End Sub
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-7 16:54 | 显示全部楼层
本帖最后由 ysr 于 2023-1-7 11:59 编辑

Private Function ksm4(sa As String, sb As String) As String '某数的快速幂程序
Dim a, b
a = Val(sa)
ja1 = Val(sb)
a1 = a
ja = 2
b = Int(Log(a) / Log(ja1))
Do Until ja > b
a3 = a - ja1 ^ ja

If a3 = 1 Then
ksm = a & "=" & ja1 & "^" & ja & "+1" & "  "
ElseIf a3 = 2 Then
ksm = a & "=" & ja1 & "^" & ja & "+1+1" & "  "
Else
q1 = Sqr(Val(a3))
a2 = 2
Do While InStr(Log(a3) / Log(a2), ".") > 0 And a2 < q1
a2 = a2 + 1
Loop
r1 = Log(a3) / Log(a2)
a5 = a2
a4 = a3 - Int(Sqr(a3)) ^ 2
If a4 = 1 Then
ksm = a & "=" & ja1 & "^" & ja & "+" & Int(Sqr(a3)) & "^" & 2 & "+1" & "  "
ElseIf InStr(r1, ".") = 0 Then
ksm = a & "=" & ja1 & "^" & ja & "+" & a2 & "^" & r1 & "  "

Else
q2 = Sqr(Val(a4))
a2 = 2
Do While InStr(Log(a4) / Log(a2), ".") > 0 And a2 < q2
a2 = a2 + 1
Loop
r2 = Log(a4) / Log(a2)
If InStr(r2, ".") = 0 Then
ksm = a & "=" & ja1 & "^" & ja & "+" & Int(Sqr(a3)) & "^" & 2 & "+" & a2 & "^" & r2 & "  "
Else

s = s + 1
ksm = a & "=无解"
End If
End If
End If

If InStr(ksm, "无解") > 0 Then
ksm4 = 无解
Else
ksm4 = ksm4 & ksm
End If
ja = ja + 1
Loop

End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-7 17:11 | 显示全部楼层
本帖最后由 ysr 于 2023-1-7 12:10 编辑

Private Sub Command1_Click()
'验证李明波幂和猜想的程序
Dim a, b
a = Val(Text1)
jb = Val(Text2)
ja2 = a
Do While a <= jb
q = a ^ (1 / 2)
a2 = 2
Do While InStr(Log(a) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop

r = Log(a) / Log(a2)
a3 = a - Int(q) ^ 2
If InStr(r, ".") = 0 Then
Text3 = Text3 & a & "=" & a2 & "^" & r & vbCrLf
ElseIf a3 = 1 Then
Text3 = Text3 & a & "=" & Int(q) & "^" & 2 & "+1" & vbCrLf
ElseIf a3 = 2 Then
Text3 = Text3 & a & "=" & Int(q) & "^" & 2 & "+1+1" & vbCrLf
Else
a4 = a - 1
a2 = 2
Do While InStr(Log(a4) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop
r1 = Log(a4) / Log(a2)
If InStr(r1, ".") = 0 Then
Text3 = Text3 & a & "=" & "1+" & a2 & "^" & r1 & vbCrLf
Else
a5 = a - 2
a2 = 2
Do While InStr(Log(a5) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop
r2 = Log(a5) / Log(a2)
If InStr(r2, ".") = 0 Then
Text3 = Text3 & a & "=" & "1+1+" & a2 & "^" & r2 & vbCrLf
Else
ja1 = 2
Do While ja1 < q
For i = ja1 To Int(q) Step 1
If InStr(ksm4(Trim(a), Val(i)), "+") = 0 Then
ah = False
Exit For

Else: ah = True
js = ksm4(Trim(a), Val(i))
End If
Next

If ah = True Then
s = s + 1
Text3 = Text3 & a & "=无解" & vbCrLf
Else
If InStr(js, "+") = 0 Then
Text3 = Text3
Else
s1 = s1 + 1
Text3 = Text3 & js & vbCrLf
End If
End If
ja1 = ja1 + 1
Loop
End If
End If
End If

a = a + 1
Loop

Combo1 = ja2 & "~" & jb & "之间,有" & Val(s) & "个无解:" & vbCrLf & Text3


End Sub



Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Combo1 = ""

End Sub

Private Function ksm5(sa As String, sb As String) As String '某数的快速幂程序
Dim a, q
a = Val(sa)
q = Val(sb)
ja1 = 2
Do While ja1 < q
For i = ja1 To Int(q) Step 1
If InStr(ksm4(Trim(a), Val(i)), "+") = 0 Then
ah = False
Exit For

Else: ah = True
js = ksm4(Trim(a), Val(i))
End If
Next

If ah = True Then
s = s + 1
m5 = m5 & a & "=无解" & vbCrLf
Else
If InStr(js, "+") = 0 Then
m5 = m5
Else
s1 = s1 + 1
m5 = m5 & js & vbCrLf
End If
End If
ja1 = ja1 + 1
Loop

If s1 > 0 Then
ksm5 = ksm5 & a & "=无解" & vbCrLf
Else
ksm5 = m5
End If
End Function
Private Function ksm4(sa As String, sb As String) As String '某数的快速幂程序
Dim a, b
a = Val(sa)
ja1 = Val(sb)
a1 = a
ja = 2
b = Int(Log(a) / Log(ja1))
Do Until ja > b
a3 = a - ja1 ^ ja

If a3 = 1 Then
ksm = a & "=" & ja1 & "^" & ja & "+1" & "  "
ElseIf a3 = 2 Then
ksm = a & "=" & ja1 & "^" & ja & "+1+1" & "  "
Else
q1 = Sqr(Val(a3))
a2 = 2
Do While InStr(Log(a3) / Log(a2), ".") > 0 And a2 < q1
a2 = a2 + 1
Loop
r1 = Log(a3) / Log(a2)
a5 = a2
a4 = a3 - Int(Sqr(a3)) ^ 2
If a4 = 1 Then
ksm = a & "=" & ja1 & "^" & ja & "+" & a2 & "^" & Int(r1) & "+1" & "  "
ElseIf InStr(r1, ".") = 0 Then
ksm = a & "=" & ja1 & "^" & ja & "+" & a2 & "^" & r1 & "  "

Else
q2 = Sqr(Val(a4))
a2 = 2
Do While InStr(Log(a4) / Log(a2), ".") > 0 And a2 < q2
a2 = a2 + 1
Loop
r2 = Log(a4) / Log(a2)
If InStr(r2, ".") = 0 Then
ksm = a & "=" & ja1 & "^" & ja & "+" & Int(Sqr(a3)) & "^" & 2 & "+" & a2 & "^" & r2 & "  "
Else

s = s + 1
ksm = a & "=无解"
End If
End If
End If

If InStr(ksm, "无解") > 0 Then
ksm4 = 无解
Else
ksm4 = ksm4 & ksm
End If
ja = ja + 1
Loop

End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-7 18:56 | 显示全部楼层
本帖最后由 ysr 于 2023-1-7 11:10 编辑

Private Function ksm5(sa As String, sb As String) As String '某数的快速幂程序
Dim a, q
a = Val(sa)
q = Val(sb)
ja1 = 2
Do While ja1 < q
For i = ja1 To Int(q) Step 1
If InStr(ksm4(Trim(a), Val(i)), "+") = 0 Then
ah = False
Exit For

Else: ah = True
js = ksm4(Trim(a), Val(i))
End If
Next

If ah = True Then
s = s + 1
m5 = m5 & a & "=无解" & vbCrLf
Else
If InStr(js, "+") = 0 Then
m5 = m5
Else
s1 = s1 + 1
m5 = m5 & js & vbCrLf
End If
End If
ja1 = ja1 + 1
Loop

If s1 > 0 Then
ksm5 = m5
Else
ksm5 = ksm5 & a & "=无解" & vbCrLf
End If
End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-7 19:12 | 显示全部楼层
本帖最后由 ysr 于 2023-1-7 12:10 编辑

Private Sub Command1_Click()
'验证李明波幂和猜想的程序
Dim a, b
a = Val(Text1)
jb = Val(Text2)
ja2 = a
Do While a <= jb
q = a ^ (1 / 2)
a2 = 2
Do While InStr(Log(a) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop

r = Log(a) / Log(a2)
a3 = a - Int(q) ^ 2
If InStr(r, ".") = 0 Then
Text3 = Text3 & a & "=" & a2 & "^" & r & vbCrLf
ElseIf a3 = 1 Then
Text3 = Text3 & a & "=" & Int(q) & "^" & 2 & "+1" & vbCrLf
ElseIf a3 = 2 Then
Text3 = Text3 & a & "=" & Int(q) & "^" & 2 & "+1+1" & vbCrLf
Else
a4 = a - 1
a2 = 2
Do While InStr(Log(a4) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop
r1 = Log(a4) / Log(a2)
If InStr(r1, ".") = 0 Then
Text3 = Text3 & a & "=" & "1+" & a2 & "^" & r1 & vbCrLf
Else
a5 = a - 2
a2 = 2
Do While InStr(Log(a5) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop
r2 = Log(a5) / Log(a2)
If InStr(r2, ".") = 0 Then
Text3 = Text3 & a & "=" & "1+1+" & a2 & "^" & r2 & vbCrLf
Else
ja1 = 2
jc = ksm5(Trim(a), Trim(q))
If InStr(jc, "无解") > 0 Then
s = s + 1
Text3 = Text3 & a & "=无解" & vbCrLf
Else
Text3 = Text3 & jc
End If

End If
End If
End If

a = a + 1
Loop

Combo1 = ja2 & "~" & jb & "之间,有" & Val(s) & "个无解:" & vbCrLf & Text3


End Sub




Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Combo1 = ""

End Sub

Private Function ksm5(sa As String, sb As String) As String '某数的快速幂程序
Dim a, q
a = Val(sa)
q = Val(sb)
ja1 = 2
Do While ja1 < q
For i = ja1 To Int(q) Step 1
If InStr(ksm4(Trim(a), Val(i)), "+") = 0 Then
ah = False
Exit For

Else: ah = True
js = ksm4(Trim(a), Val(i))
End If
Next

If ah = True Then
s = s + 1
m5 = m5 & a & "=无解" & vbCrLf
Else
If InStr(js, "+") = 0 Then
m5 = m5
Else
s1 = s1 + 1
m5 = m5 & js & vbCrLf
End If
End If
ja1 = ja1 + 1
Loop

If s1 > 0 Then
ksm5 = m5
Else
ksm5 = ksm5 & a & "=无解" & vbCrLf
End If
End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-7 20:48 | 显示全部楼层
Private Sub Command1_Click()
'验证李明波幂和猜想的程序
Dim a, b
a = Val(Text1)
b = Val(Text2)
a1 = a
Do While a <= b
q = a ^ (1 / 2)
a2 = 2
Do While InStr(Log(a) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop

r = Log(a) / Log(a2)
a3 = a - Int(q) ^ 2
If InStr(r, ".") = 0 Then
Text3 = Text3 & a & "=" & a2 & "^" & r & vbCrLf
ElseIf a3 = 1 Then
Text3 = Text3 & a & "=" & Int(q) & "^" & 2 & "+1" & vbCrLf
ElseIf a3 = 2 Then
Text3 = Text3 & a & "=" & Int(q) & "^" & 2 & "+1+1" & vbCrLf
Else
q1 = Sqr(Val(a3))
a2 = 2
Do While InStr(Log(a3) / Log(a2), ".") > 0 And a2 < q1
a2 = a2 + 1
Loop
r1 = Log(a3) / Log(a2)
a4 = a - Int(q) ^ 2 - Int(q1) ^ 2
If InStr(r1, ".") = 0 Then
Text3 = Text3 & a & "=" & Int(q) & "^2" & "+" & a2 & "^" & r1 & vbCrLf
ElseIf a4 = 1 Then
Text3 = Text3 & a & "=" & Int(q) & "^2" & "+" & Int(q1) & "^" & 2 & "+1" & vbCrLf
Else
q2 = Sqr(Val(a4))
a2 = 2
Do While InStr(Log(a4) / Log(a2), ".") > 0 And a2 < q2
a2 = a2 + 1
Loop
r2 = Log(a4) / Log(a2)
If a4 = 2 Then
js = ksm6(Trim(a), Val(s))
If InStr(js, "+") = 0 Then
s = s + 1
Text3 = Text3 & a & "=无解" & vbCrLf
Else
Text3 = Text3 & js & vbCrLf
End If
ElseIf InStr(r2, ".") = 0 Then
Text3 = Text3 & a & "=" & Int(q) & "^2" & "+" & Int(q1) & "^2+" & a2 & "^" & r2 & vbCrLf

Else

js = ksm6(Trim(a), Val(s))
If InStr(js, "+") = 0 Then
s = s + 1
Text3 = Text3 & a & "=无解" & vbCrLf
Else
Text3 = Text3 & js & vbCrLf
End If
End If
End If
End If
a = a + 1
Loop

Combo1 = a1 & "~" & b & "之间,有" & s & "个无解:" & vbCrLf & Text3


End Sub


Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Combo1 = ""

End Sub

Private Function ksm6(sa As String, sb As String) As String '某数的快速幂程序
Dim a, b
a = Val(sa)
s = Val(sb)
a1 = a
ja = 2
b = Int(Log(a) / Log(3))
Do Until ja > b
a3 = a - 3 ^ ja

If a3 = 1 Then
ksm = a & "=" & 3 & "^" & ja & "+1" & "  "
ElseIf a3 = 2 Then
ksm = a & "=" & 3 & "^" & ja & "+1+1" & "  "
Else
q1 = Sqr(Val(a3))
a2 = 2
Do While InStr(Log(a3) / Log(a2), ".") > 0 And a2 < q1
a2 = a2 + 1
Loop
r1 = Log(a3) / Log(a2)
a5 = a2
a4 = a3 - Int(Sqr(a3)) ^ 2
If a4 = 1 Then
ksm = a & "=3^" & ja & "+" & a2 & "^" & Int(r1) & "+1" & "  "
ElseIf InStr(r1, ".") = 0 Then
ksm = a & "=3^" & ja & "+" & a2 & "^" & r1 & "  "

Else
q2 = Sqr(Val(a4))
a2 = 2
Do While InStr(Log(a4) / Log(a2), ".") > 0 And a2 < q2
a2 = a2 + 1
Loop
r2 = Log(a4) / Log(a2)
If InStr(r2, ".") = 0 Then
ksm = a & "=3^" & ja & "+" & Int(Sqr(a3)) & "^" & 2 & "+" & a2 & "^" & r2 & "  "
Else

s = s + 1
ksm = a & "=无解" & vbCrLf
End If
End If
End If

If InStr(ksm, "无解") > 0 Then
ksm4 = 无解
Else
ksm6 = ksm6 & ksm
End If
ja = ja + 1
Loop

End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-7 21:02 | 显示全部楼层
本帖最后由 ysr 于 2023-1-7 13:11 编辑

Private Sub Command1_Click()
'验证李明波幂和猜想的程序
Dim a, b
a = Val(Text1)
b = Val(Text2)
a1 = a
Do While a <= b
q = a ^ (1 / 2)
a2 = 2
Do While InStr(Log(a) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop

r = Log(a) / Log(a2)
a3 = a - Int(q) ^ 2
If InStr(r, ".") = 0 Then
Text3 = Text3 & a & "=" & a2 & "^" & r & vbCrLf
ElseIf a3 = 1 Then
Text3 = Text3 & a & "=" & Int(q) & "^" & 2 & "+1" & vbCrLf
ElseIf a3 = 2 Then
Text3 = Text3 & a & "=" & Int(q) & "^" & 2 & "+1+1" & vbCrLf
Else
q1 = Sqr(Val(a3))
a2 = 2
Do While InStr(Log(a3) / Log(a2), ".") > 0 And a2 < q1
a2 = a2 + 1
Loop
r1 = Log(a3) / Log(a2)
a4 = a - Int(q) ^ 2 - Int(q1) ^ 2
If InStr(r1, ".") = 0 Then
Text3 = Text3 & a & "=" & Int(q) & "^2" & "+" & a2 & "^" & r1 & vbCrLf
ElseIf a4 = 1 Then
Text3 = Text3 & a & "=" & Int(q) & "^2" & "+" & Int(q1) & "^" & 2 & "+1" & vbCrLf
Else
q2 = Sqr(Val(a4))
a2 = 2
Do While InStr(Log(a4) / Log(a2), ".") > 0 And a2 < q2
a2 = a2 + 1
Loop
r2 = Log(a4) / Log(a2)
If a4 = 2 Then
js = ksm6(Trim(a), Val(s))
If InStr(js, "+") = 0 Then
s = s + 1
Text3 = Text3 & a & "=无解" & vbCrLf
Else
Text3 = Text3 & js & vbCrLf
End If
ElseIf InStr(r2, ".") = 0 Then
Text3 = Text3 & a & "=" & Int(q) & "^2" & "+" & Int(q1) & "^2+" & a2 & "^" & r2 & vbCrLf

Else

js = ksm6(Trim(a), Val(s))
If InStr(js, "+") = 0 Then
ja1 = 2
jc = ksm5(Trim(a), Trim(q))
If InStr(jc, "无解") > 0 Then
s = s + 1
Text3 = Text3 & a & "=无解" & vbCrLf
Else
Text3 = Text3 & jc
End If
Else
Text3 = Text3 & js & vbCrLf
End If
End If
End If
End If
a = a + 1
Loop

Combo1 = a1 & "~" & b & "之间,有" & Val(s) & "个无解:" & vbCrLf & Text3


End Sub


Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Combo1 = ""

End Sub

Private Function ksm6(sa As String, sb As String) As String '某数的快速幂程序
Dim a, b
a = Val(sa)
s = Val(sb)
a1 = a
ja = 2
b = Int(Log(a) / Log(3))
Do Until ja > b
a3 = a - 3 ^ ja

If a3 = 1 Then
ksm = a & "=" & 3 & "^" & ja & "+1" & "  "
ElseIf a3 = 2 Then
ksm = a & "=" & 3 & "^" & ja & "+1+1" & "  "
Else
q1 = Sqr(Val(a3))
a2 = 2
Do While InStr(Log(a3) / Log(a2), ".") > 0 And a2 < q1
a2 = a2 + 1
Loop
r1 = Log(a3) / Log(a2)
a5 = a2
a4 = a3 - Int(Sqr(a3)) ^ 2
If a4 = 1 Then
ksm = a & "=3^" & ja & "+" & a2 & "^" & Int(r1) & "+1" & "  "
ElseIf InStr(r1, ".") = 0 Then
ksm = a & "=3^" & ja & "+" & a2 & "^" & r1 & "  "

Else
q2 = Sqr(Val(a4))
a2 = 2
Do While InStr(Log(a4) / Log(a2), ".") > 0 And a2 < q2
a2 = a2 + 1
Loop
r2 = Log(a4) / Log(a2)
If InStr(r2, ".") = 0 Then
ksm = a & "=3^" & ja & "+" & Int(Sqr(a3)) & "^" & 2 & "+" & a2 & "^" & r2 & "  "
Else

s = s + 1
ksm = a & "=无解" & vbCrLf
End If
End If
End If

If InStr(ksm, "无解") > 0 Then
ksm6 = 无解
Else
ksm6 = ksm6 & ksm
End If
ja = ja + 1
Loop

End Function
Private Function ksm5(sa As String, sb As String) As String '某数的快速幂程序
Dim a, q
a = Val(sa)
q = Val(sb)
ja1 = 2
Do While ja1 < q
For i = ja1 To Int(q) Step 1
If InStr(ksm4(Trim(a), Val(i)), "+") = 0 Then
ah = False
Exit For

Else: ah = True
js = ksm4(Trim(a), Val(i))
End If
Next

If ah = True Then
s = s + 1
m5 = m5 & a & "=无解" & vbCrLf
Else
If InStr(js, "+") = 0 Then
m5 = m5
Else
s1 = s1 + 1
m5 = m5 & js & vbCrLf
End If
End If
ja1 = ja1 + 1
Loop

If s1 > 0 Then
ksm5 = m5
Else
ksm5 = ksm5 & a & "=无解" & vbCrLf
End If
End Function
Private Function ksm4(sa As String, sb As String) As String '某数的快速幂程序
Dim a, b
a = Val(sa)
ja1 = Val(sb)
a1 = a
ja = 2
b = Int(Log(a) / Log(ja1))
Do Until ja > b
a3 = a - ja1 ^ ja

If a3 = 1 Then
ksm = a & "=" & ja1 & "^" & ja & "+1" & "  "
ElseIf a3 = 2 Then
ksm = a & "=" & ja1 & "^" & ja & "+1+1" & "  "
Else
q1 = Sqr(Val(a3))
a2 = 2
Do While InStr(Log(a3) / Log(a2), ".") > 0 And a2 < q1
a2 = a2 + 1
Loop
r1 = Log(a3) / Log(a2)
a5 = a2
a4 = a3 - Int(Sqr(a3)) ^ 2
If a4 = 1 Then
ksm = a & "=" & ja1 & "^" & ja & "+" & a2 & "^" & Int(r1) & "+1" & "  "
ElseIf InStr(r1, ".") = 0 Then
ksm = a & "=" & ja1 & "^" & ja & "+" & a2 & "^" & r1 & "  "

Else
q2 = Sqr(Val(a4))
a2 = 2
Do While InStr(Log(a4) / Log(a2), ".") > 0 And a2 < q2
a2 = a2 + 1
Loop
r2 = Log(a4) / Log(a2)
If InStr(r2, ".") = 0 And r2 <> 1 Then
ksm = a & "=" & ja1 & "^" & ja & "+" & Int(Sqr(a3)) & "^" & 2 & "+" & a2 & "^" & r2 & "  "
Else

s = s + 1
ksm = a & "=无解"
End If
End If
End If

If InStr(ksm, "无解") > 0 Then
ksm4 = 无解
Else
ksm4 = ksm4 & ksm
End If
ja = ja + 1
Loop

End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-7 21:19 | 显示全部楼层
Private Sub Command1_Click()
'验证李明波幂和猜想的程序
Dim a, b
a = Val(Text1)
b = Val(Text2)
a1 = a
Do While a <= b
q = a ^ (1 / 2)
a2 = 2
Do While InStr(Log(a) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop

r = Log(a) / Log(a2)
a3 = a - Int(q) ^ 2
If InStr(r, ".") = 0 Then
Text3 = Text3 & a & "=" & a2 & "^" & r & vbCrLf
ElseIf a3 = 1 Then
Text3 = Text3 & a & "=" & Int(q) & "^" & 2 & "+1" & vbCrLf
ElseIf a3 = 2 Then
Text3 = Text3 & a & "=" & Int(q) & "^" & 2 & "+1+1" & vbCrLf
Else
q1 = Sqr(Val(a3))
a2 = 2
Do While InStr(Log(a3) / Log(a2), ".") > 0 And a2 < q1
a2 = a2 + 1
Loop
r1 = Log(a3) / Log(a2)
a4 = a - Int(q) ^ 2 - Int(q1) ^ 2
If InStr(r1, ".") = 0 Then
Text3 = Text3 & a & "=" & Int(q) & "^2" & "+" & a2 & "^" & r1 & vbCrLf
ElseIf a4 = 1 Then
Text3 = Text3 & a & "=" & Int(q) & "^2" & "+" & Int(q1) & "^" & 2 & "+1" & vbCrLf
Else
q2 = Sqr(Val(a4))
a2 = 2
Do While InStr(Log(a4) / Log(a2), ".") > 0 And a2 < q2
a2 = a2 + 1
Loop
r2 = Log(a4) / Log(a2)
If a4 = 2 Then
js = ksm6(Trim(a), Val(s))
If InStr(js, "+") = 0 Then
s = s + 1
Text3 = Text3 & a & "=无解" & vbCrLf
Else
Text3 = Text3 & js & vbCrLf
End If
ElseIf InStr(r2, ".") = 0 Then
Text3 = Text3 & a & "=" & Int(q) & "^2" & "+" & Int(q1) & "^2+" & a2 & "^" & r2 & vbCrLf

Else

js = ksm6(Trim(a), Val(s))
If InStr(js, "+") = 0 Then
a4 = a - 1
a2 = 2
Do While InStr(Log(a4) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop
r1 = Log(a4) / Log(a2)
If InStr(r1, ".") = 0 Then
Text3 = Text3 & a & "=" & "1+" & a2 & "^" & r1 & vbCrLf
Else
a5 = a - 2
a2 = 2
Do While InStr(Log(a5) / Log(a2), ".") > 0 And a2 < q
a2 = a2 + 1
Loop
r2 = Log(a5) / Log(a2)
If InStr(r2, ".") = 0 Then
Text3 = Text3 & a & "=" & "1+1+" & a2 & "^" & r2 & vbCrLf
Else
ja1 = 2
jc = ksm5(Trim(a), Trim(q))
If InStr(jc, "无解") > 0 Then
s = s + 1
Text3 = Text3 & a & "=无解" & vbCrLf
Else
Text3 = Text3 & jc
End If

End If
End If
Else
Text3 = Text3 & js & vbCrLf
End If
End If
End If
End If
a = a + 1
Loop

Combo1 = a1 & "~" & b & "之间,有" & Val(s) & "个无解:" & vbCrLf & Text3


End Sub
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-7 21:49 | 显示全部楼层
本帖最后由 ysr 于 2023-1-7 15:12 编辑

4~100之间,有12个无解:
4=2^2
5=2^2+1
6=2^2+1+1
7=无解
8=2^3
9=3^2
10=3^2+1
11=3^2+1+1
12=无解
13=3^2+2^2
14=3^2+2^2+1
15=无解
16=2^4
17=4^2+1
18=4^2+1+1
19=3^2+4^1+1  
20=4^2+2^2
21=4^2+2^2+1
22=3^2+3^2+2^2  
23=无解
24=4^2+2^3
25=5^2
26=5^2+1
27=3^3
28=3^3+1  
29=5^2+2^2
30=5^2+2^2+1
31=3^3+2^2  
32=2^5
33=5^2+2^3
34=5^2+3^2
35=5^2+3^2+1
36=6^2
37=6^2+1
38=6^2+1+1
39=无解
40=6^2+2^2
41=6^2+2^2+1
42=无解
43=3^2+5^2+3^2  43=3^3+2^4  
44=6^2+2^3
45=6^2+3^2
46=6^2+3^2+1
47=3^3+4^2+2^2  
48=2^2+6^2+2^3  48=2^3+6^2+2^2  48=2^4+2^5  48=2^5+2^4  
48=2^2+6^2+2^3  48=2^3+6^2+2^2  48=2^4+2^5  48=2^5+2^4  
48=4^2+2^5  
48=4^2+2^5  
48=4^2+2^5  
49=7^2
50=7^2+1
51=7^2+1+1
52=3^3+5^2  
53=7^2+2^2
54=7^2+2^2+1
55=无解
56=3^3+5^2+2^2  
57=7^2+2^3
58=7^2+3^2
59=7^2+3^2+1
60=3^3+5^2+2^3  
61=3^3+5^2+3^2  
62=7^2+3^2+2^2
63=3^3+6^2  
64=2^6
65=8^2+1
66=8^2+1+1
67=3^2+7^2+3^2  67=3^3+6^2+2^2  
68=8^2+2^2
69=8^2+2^2+1
70=无解
71=3^3+6^2+2^3  
72=8^2+2^3
73=8^2+3^2
74=8^2+3^2+1
75=无解
76=3^3+7^2  
77=8^2+3^2+2^2
78=5^2+7^2+2^2  
78=5^2+7^2+2^2  
78=7^2+5^2+2^2  
78=7^2+5^2+2^2  
79=无解
80=8^2+2^4
81=3^4
82=9^2+1
83=9^2+1+1
84=3^3+7^2+2^3  84=3^3+7^2+2^3  
85=9^2+2^2
86=9^2+2^2+1
87=无解
88=2^6+4^2+2^3  
88=2^6+4^2+2^3  
88=4^2+8^2+2^3  88=4^3+4^2+2^3  
88=4^2+8^2+2^3  88=4^3+4^2+2^3  
88=4^2+8^2+2^3  88=4^3+4^2+2^3  
88=4^2+8^2+2^3  88=4^3+4^2+2^3  
88=8^2+4^2+2^3  
88=8^2+4^2+2^3  
89=9^2+2^3
90=9^2+3^2
91=9^2+3^2+1
92=3^3+9^1+1  92=3^3+9^1+1  
93=2^6+5^2+2^2  
93=2^6+5^2+2^2  
93=8^2+5^2+2^2  
93=8^2+5^2+2^2  
93=8^2+5^2+2^2  
93=8^2+5^2+2^2  
93=8^2+5^2+2^2  
93=8^2+5^2+2^2  
94=9^2+3^2+2^2
95=无解
96=2^4+8^2+2^4  96=2^5+2^6  96=2^6+2^5  
96=2^4+8^2+2^4  96=2^5+2^6  96=2^6+2^5  
96=4^2+8^2+2^4  96=4^3+2^5  
96=4^2+8^2+2^4  96=4^3+2^5  
96=4^2+8^2+2^4  96=4^3+2^5  
96=4^2+8^2+2^4  96=4^3+2^5  
96=8^2+2^5  
96=8^2+2^5  
97=9^2+2^4
98=9^2+4^2+1
99=3^2+9^2+3^2  99=3^3+8^2+2^3  99=3^3+8^2+2^3  
100=10^2
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-7 22:04 | 显示全部楼层
本帖最后由 ysr 于 2023-1-7 15:15 编辑

39=3^3+2^3+2^2=27+8+4,
42=25+16+1=5^2+2^4+1,
55=27+27+1=3^3+3^3+1,
12=8+4=2^3+2^2
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-3-29 06:30 , Processed in 0.078125 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表