|

楼主 |
发表于 2023-2-11 09:56
|
显示全部楼层
本帖最后由 ysr 于 2023-2-11 05:30 编辑
Private Sub Command1_Click()
'面对角线是整数的程序
Dim a, B, ak()
a = Trim(Text1)
a1 = 1
Do While a1 ^ 2 <= (a + 1) ^ 2 / 2
a2 = a ^ 2 - a1 ^ 2
If InStr(a2 ^ (1 / 2), ".") = 0 Then
js = js + 1
s2 = s2 & "/" & a & "^2=" & a1 & "^2+" & a2 ^ (1 / 2) & "^2" & vbCrLf
s13 = s13 & "/" & a1 ^ 2 & "/" & a2
Else
s13 = s13
End If
a1 = a1 + 1
Loop
s = "/67184/323861151744/94848/319378698496/129808/311524724736/141056/308478046464/156864/303768527104/205200/286267801600/220400/279798681600/231040/274995360000/280896/249472278784/290928/243735740416/304912/235403513856/343824/210159898624/395200/172191801600/5219/641774027664/10205/641697123600/17900/641480855625/28101/641011599424/28860/640968366025/31941/640781038144/34075/640640160000/44268/639841609801/56925/638560810000/60000/638201265625/65960/637450544025/70928/636770484441/76125/636006250000/88740/633926478025/93925/632979360000/98875“"
s = s & "/632025000000/104052/630974446921/104805/630817177600/122525/626788890000/127680/625499083225/132600/624218505625/150220/619235217225/163995/614906905600/166085/614217038400/169100/613206455625/181475/608868090000/187293/606722597776/191400/605167305625/197200/602913425625/207075/598921210000/209467/597924841536/214500/595791015625/219300/593708775625/224315/591484046400/225044/591156463689/241443/583506543376/251875"
s = s & "/578360250000/254800/576878225625/256824/575842698649/278396/564296932809/281285/562680014400/281996/562279521609/286875/559504000000/291525/556814440000/296380/553960161225/298680/552591523225/308125/546860250000/312936/543872325529/313635/543434352400/317520/540982315225/323000/537472265625/334565/529867526400/337364/527986797129/339300/526676775625/348517/520337166336/351973/517916272896/367965/506403024400/372387/503129187856/377000/499672265625/381597/496184995216/392700/487587975625/397900/483476855625/401563/480548422656"
s = s & "/402220/480020337225/406725/476376040000/415484/469174311369/417600/467411505625/422045/463679283600/426275/460090890000/431325/455760010000/433920/453514699225/452980/436610385225/454740/435012798025/457275/432700840000/466235/424426190400/472472/418571474841/480675/410752810000/484840/406731440025/488800/402875825625/494875/396900000000/502860/388933086025/503451/388338356224/507500/384245015625/515355/376210489600/525000/366176265625/527325/363729610000/528931/362033262864/531811/358978325904/539400/350848905625/548709/340719698944/552500/336545015625/556100/332554055625/559845/328374841600/560388/327766555081"
s = s & "/7995/241729555600/17875/241473960000/20915/241356038400/25236/241156619929/28900/240958265625/36667/240449006736/38760/240291138025/46515/239629830400/46725/239610250000/54468/238826712601/72197/236581068816/75205/236137683600/83096/234888530409/92204/233291898009/92820/233177923225/100045/231784473600/100659/231661241344/103635/231053262400/109701/229759166224/113275/228962250000/117480/227991925225/120432/227289609001/121040/227142794025/128773/225210990096/137683/222836867136/138285/222670734400/145340/220669760025/154752/217845294121/165189/214506069904/165581/214376408064/172500/212037225625/181720"
s = s & "/208771317225/181916/208700044569/189125/206025210000/192507/204734530576/196480/203189085225/205500/199563225625/208260/198421248025/208828/198184342041/215475/195364000000/224315/191476256400/231400/188247515625/234080/187000029225/242724/182878535449/249645/179470849600/256320/176093533225/256500/176001225625/263109/172567129744/264880/171632061225/271405/168132801600/278036/164489458329/280540/163090784025/288600/158503515625/294533/155043787536/295035/154747824400/301392/150956337961/308652/146527418521/309140/146225936025/311500/144761225625/314835/142672398400/317645/140895129600/322363/137875571856/325125/136087210000/330616/132486536169/330924/132282781849/331080/132179509225/343629/123712585984"
s4 = Split(s, "/")
j = UBound(s4)
For k = 1 To j
n1 = n1 + 1
ReDim Preserve ak(1 To n1)
ak(n1) = s4(n1)
s12 = s12 & "/" & Val(ak(n1)) ^ 2
Next
s12 = s12 & "/" & s13
s6 = paixu3(Trim(s12), Trim(s12))
s3 = paixu33(Trim(s), Trim(s), Trim(s))
's3 = "/" & s3
s5 = Split(s3, "/")
j1 = UBound(s5)
If js = 0 Then
Text2 = "有" & j1 & "组" & s3
Else
Text2 = "有" & j1 & "组" & s3 & "/平方数" & a & "^2的拆分解有:" & js & "组" & s2
End If
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
End Sub
Private Function paixu33(a As String, B As String, c As String) As String
Dim i As Integer
Dim ak(), s105, cr(), f, bk(), cr1()
s103 = a
Set f = CreateObject("Scripting.Dictionary")
s105 = Split(s103, "/")
s205 = Split(B, "/")
s206 = Split(c, "/")
j1 = UBound(s105)
j2 = UBound(s205)
j3 = UBound(s206)
Print j1
For k = 1 To j1
n1 = n1 + 1
ReDim Preserve ak(1 To n1)
ak(n1) = s105(n1)
Next
For k = 1 To j2
n2 = n2 + 1
ReDim Preserve bk(1 To n2)
bk(n2) = s205(n2)
Next
For k = 1 To j3
n3 = n3 + 1
ReDim Preserve cr(1 To n3)
cr(n3) = s206(n3)
Next
n = 0
For k = 1 To 160
For i = 1 To 160
For i1 = 1 To 160
n = n + 1
ReDim Preserve cr1(1 To n)
m = Val(ak(k)) + Val(bk(i)) + Val(cr(i1))
a = Val(ak(k))
B = Val(bk(i))
c = Val(cr(i1))
d = MBBC(MPC1(MbC(Trim(a), Trim(a)), MbC(Trim(B), Trim(B))))
e = MBBC(MPC1(MbC(Trim(c), Trim(c)), MbC(Trim(B), Trim(B))))
f = MBBC(MPC1(MbC(Trim(a), Trim(a)), MbC(Trim(c), Trim(c))))
g = MBBC(MPC1(MbC(Trim(a), Trim(a)), MPC1(MbC(Trim(c), Trim(c)), MbC(Trim(B), Trim(B)))))
If InStr(Trim(d), "/") = 0 And InStr(Trim(e), "/") = 0 And InStr(Trim(f), "/") = 0 And Val(ak(k)) <> 0 And Val(bk(i)) <> 0 Then
s22 = s22 & "/d=" & d^2 & "=" & d & "^2=" & Val(ak(k)) & "^2+" & Val(bk(i)) & "^2 f=" & Val(cr(i1)) & "^2+" & Val(ak(k)) & "^2 e=" & Val(bk(i)) & "^2+" & Val(cr(i1)) & "^2" & vbCrLf
Else
s22 = s22
End If
Next
Next
Next
MsgBox "ok"
MsgBox s22 '显示数组
paixu33 = s22
End Function
Private Function paixu3(a As String, B As String) As String
Dim i As Integer
Dim ak(), s105, cr(), f, bk()
s103 = a
Set f = CreateObject("Scripting.Dictionary")
s105 = Split(s103, "/")
s205 = Split(B, "/")
j1 = UBound(s105)
j2 = UBound(s205)
Print j1
For k = 1 To j1
n1 = n1 + 1
ReDim Preserve ak(1 To n1)
ak(n1) = s105(n1)
Next
For k = 1 To j2
n2 = n2 + 1
ReDim Preserve bk(1 To n2)
bk(n2) = s205(n2)
Next
n = 0
For k = 1 To j1
For i = 1 To j2
n = n + 1
ReDim Preserve cr(1 To n)
m = Val(ak(k)) + Val(bk(i))
f(m) = ""
Next
Next
n = 0
m = f.Keys
For i = 0 To j1
ReDim Preserve cr(1 To i + 1)
cr(i + 1) = m(i)
Next
For i = 1 To UBound(cr) - 1
For j = i + 1 To UBound(cr)
If cr(i) > cr(j) Then
temp = cr(j)
cr(j) = cr(i)
cr(i) = temp 'c数组是排序好的
End If
Next j
' If i Mod 20 = 0 Then
' s104 = s104 & temp & "/" & vbCrLf
' Else
' s104 = s104 & temp & "/"
' End If
Next i
For i = 1 To UBound(cr)
If i Mod 20 = 0 Then
s104 = s104 & cr(i) & "/" & vbCrLf
Else
s104 = s104 & cr(i) & "/"
End If
Next
Print temp
MsgBox "ok"
MsgBox s104 '显示数组
paixu3 = s104
End Function
Private Function paixu0(a As String, B As String) As String
Dim i As Integer
Dim ak(), s105, cr(), f, bk()
s103 = a
Set f = CreateObject("Scripting.Dictionary")
s105 = Split(s103, "/")
s205 = Split(B, "/")
j1 = UBound(s105)
j2 = UBound(s205)
Print j1
For k = 1 To j1
n1 = n1 + 1
ReDim Preserve ak(1 To n1)
ak(n1) = s105(n1)
Next
For k = 1 To j2
n2 = n2 + 1
ReDim Preserve bk(1 To n2)
bk(n2) = s205(n2)
Next
n = 0
For k = 1 To j1
For i = 1 To j2
n = n + 1
ReDim Preserve cr(1 To n)
m = Val(ak(k)) + Val(bk(i))
f(m) = ""
If InStr(Sqr(Val(m)), ".") = 0 And Val(ak(k)) <> 0 And Val(bk(i)) <> 0 Then
s22 = s22 & "/" & m & "=" & m ^ (1 / 2) & "^2=" & Val(ak(k)) & "+" & Val(bk(i)) & "=" & Val(ak(k)) ^ (1 / 2) & "^2+" & Val(bk(i)) ^ (1 / 2) & "^2" & vbCrLf
Else
s22 = s22
End If
Next
Next
MsgBox "ok"
MsgBox s22 '显示数组
paixu0 = s22
End Function |
|