数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 95|回复: 16

特殊真分数4/p拆分为三个埃及分数之和的代码

[复制链接]
发表于 2026-5-3 14:37 | 显示全部楼层 |阅读模式
本帖最后由 ysr 于 2026-5-6 00:15 编辑

'代码如下已修改正确:

Private Sub Command1_Click()
Dim k, m, t1, t2, p, a
Dim w As Double
a = Val(Text1)
k = 1
Do While k <= a
m = 1
Do While m <= a
d = (15 * k + 13) * m + 11 * k + 9
p = 120 * d + 49
d1 = fenjieyinzi(Val(p))
If InStr(d1, "*") = 0 Then
w = (120 * d + 49) * (30 * d + 16)
t1 = 30 * k + 26
t2 = (30 * d + 16) ^ 2 / (30 * k + 26)

If InStr(t2, ".") = 0 And (w - 4) / 15 - Int((w - 4) / 15) = 0 And (t1 - 11) / 15 - Int((t1 - 11) / 15) = 0 And (t2 - 11) / 15 - Int((t2 - 11) / 15) = 0 Then
x = 30 * d + 16: y = (w + t2) / 15: z = (w + t1 * (120 * d + 49) ^ 2) / 15
If InStr(y, ".") = 0 And InStr(z, ".") = 0 Then
s = s & "w=" & w & "  d=" & d & " t1=" & t1 & " t2=" & t2 & vbCrLf
s = s & "p=120d+49= " & p & "  x=" & x & "  y=" & y & "  z=" & z & vbCrLf
s1 = s1 + 1
End If
End If
End If
m = m + 1
Loop

k = k + 1
Loop
If s1 > 0 Then
Text2 = "k和m在" & a & "内,有" & s1 & "组解:" & vbCrLf & s
Else
Text2 = "wu  jie"
End If


End Sub

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

End Sub

Private Function fenjieyinzi(sa As String) As String
Dim x, a, b, k As String
a = Val(sa)

x = 3
If a <= 1 Or a > Int(a) Then
If a = 1 Then
fenjieyinzi = "它既不是质数,也不是合数"

Else
MsgBox "error"
End If
  
Else

Do While a / 2 = Int(a / 2) And a >= 4
  
If b = 0 Then
fenjieyinzi = fenjieyinzi & "2"
b = 1
Else
fenjieyinzi = fenjieyinzi & "*2"
End If
a = a / 2
k = a
  
Loop

Do While a > 1
Do While x <= Sqr(a)
Do While a / x = Int(a / x) And a >= x * x
  
If b = 0 Then
fenjieyinzi = fenjieyinzi & x
b = 1
Else
fenjieyinzi = fenjieyinzi & "*" & x
End If
a = a / x
Loop
  
x = x + 2
Loop
  
k = a
a = 1
Loop
  
If b = 1 Then
fenjieyinzi = fenjieyinzi & "*" & k
Else
fenjieyinzi = "这是一个质数"
End If

End If

End Function

发表于 2026-5-5 08:25 | 显示全部楼层
1/21905416 + 1/127965832485504 + 1/127987610988649
= 165743984597809319/3630689689202684310884736
分子: 165743984597809319
分母: 3630689689202684310884736

一眼看出:分子不是4,你的 y,  z 值有问题,,
回复 支持 反对

使用道具 举报

发表于 2026-5-5 08:31 | 显示全部楼层
1/22113076 + 1/130403285836512 + 1/130426509132621
= 4491354652896565/99317633101972093662048
分子: 4491354652896565
分母: 99317633101972093662048

一眼看出:分子不是4,你的 y,  z 值有问题,,
回复 支持 反对

使用道具 举报

发表于 2026-5-5 08:50 | 显示全部楼层
1/19411936 + 1/100491923816096 + 1/100508835619601
= 117293833821799303/2276899515764080184070536
分子: 117293833821799303
分母: 2276899515764080184070536

—— 还是不对,请你用数字帝国的分数计算,,,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-5-5 08:53 | 显示全部楼层
本帖最后由 ysr 于 2026-5-5 00:54 编辑

w = (120 * d + 49) * (30 * d + 16)=1,507,292,745,893,344
d=647064
w=1.50729274589334E+15
浮点表示法少了一位数字
回复 支持 反对

使用道具 举报

发表于 2026-5-5 08:55 | 显示全部楼层
请你用数字帝国的分数计算,,,
回复 支持 反对

使用道具 举报

发表于 2026-5-5 08:57 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2026-5-5 09:02 | 显示全部楼层

请注意:y=(w+t2)/15,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-5-5 09:43 | 显示全部楼层
y=1507378857241440   ÷   15 =100491923816096
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-5-5 09:49 | 显示全部楼层
y的值正确,z的值不对了:
z=( 1507292745893344   +   4376   ×   ( 120   ×   647064   +   492 ) )   ÷   15 =100508835619601.06666666666666667
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-9 11:37 , Processed in 0.128911 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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