|

楼主 |
发表于 2025-10-8 11:20
|
显示全部楼层
Private Function jsmssushu(sa As String) As String
Dim B
B = 1
Do While c <= sa - 1
B = MbC(Trim(B), 2)
c = c + 1
Loop
jsmssushu = MPC(Trim(B), 1)
End Function
Private Function fenjieyinzi0(a As String) As String
x = 3
Do While InStr(MCC(Trim(a), 2), "/") = 0 And MBJC(Trim(a), 4) >= 0
If B = 0 Then
fenjieyinzi0 = fenjieyinzi0 & "2"
B = 1
Else
fenjieyinzi0 = fenjieyinzi0 & "*2"
End If
a = MCC(Trim(a), 2)
k = a
Loop
Do While MBJC(Trim(a), "0001") > 0
Do While MBJC(Trim(x), zhengchuqy(MBBC(Trim(a)))) <= 0
Do While InStr(MCC1(Trim(a), Trim(x)), "/") = 0 And MBJC(Trim(a), MbC(Trim(x), Trim(x))) >= 0
If B = 0 Then
fenjieyinzi0 = fenjieyinzi0 & x
B = 1
Else
fenjieyinzi0 = fenjieyinzi0 & "*" & x
End If
a = MCC1(Trim(a), Trim(x))
Loop
x = MPC1(Trim(x), 2)
Loop
k = a
a = 1
Loop
If B = 1 Then
fenjieyinzi0 = fenjieyinzi0 & "*" & k
Else
fenjieyinzi0 = "这是一个质数"
End If
End Function
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 |
|