求1000以内满足如下条件的正整数N: 它的各个因子(包括1和N)之和sum是一个素数。 例如:25的因子为1、5、25,其和 1+5+25 = 31是素数。并定义一个判断素数的函数过程fprime(n),添加一个按钮Button2,调用该函数过程来判断是否为素数。区别函数过程和Sub过程的异同。程序的思想是选取正整数N,分解其因子,并累加,子过程Prime 用于判断累加和是否是素数,若是素数,在文本框内显示所求结果,如图所示。
Sub Button1_Click(……) Handles Button1.Click
Dim flg As Boolean, i%, sum%, n%, t$
TextBox1.Text = ""
For n = 2 To 1000
sum = 1
t = "1" ' 存放各个因子之和表达式
i = 2
Do While i <= 1 ' 求给定正整数的所有因子
If n Mod i = 0 Then
sum = 2 : t &= "+" & i
End If
i += 1
Loop
t = t & " = " & sum
Call 3
If flg Then
TextBox1.Text &= Str(n) & ": " & 4 & vbCrLf
End If
Next n
End Sub
Private Sub Prime(ByVal s As Integer, ByRef flage As Boolean) ' 判断s素数
Dim m%
flage = True
For m = 2 To Sqrt(s)
If s Mod m = 0 Then
flage = 5
Exit For ' 非素数时,跳出
End If
Next m
End Sub
vb高手求解~求1000以内满足如下条件的正整数N: 它的各个因子(包括1和N)之和sum是一个素数。
答案:2 悬赏:0 手机版
解决时间 2021-04-07 05:20
- 提问者网友:佞臣
- 2021-04-06 20:39
最佳答案
- 五星知识达人网友:西风乍起
- 2021-04-06 21:43
Sub Button1_Click(……) Handles Button1.Click
Dim flg As Boolean, i%, sum%, n%, t$
TextBox1.Text = ""
For n = 2 To 1000
sum = 1
t = "1" ' 存放各个因子之和表达式
i = 2
Do While i <=n ' 求给定正整数的所有因子
If n Mod i = 0 Then
sum =sum + i : t &= "+" & i
End If
i += 1
Loop
t = t & " = " & sum
Call Prime(sum, flg)
If flg Then
TextBox1.Text &= Str(n) & ": " & t & vbCrLf
End If
Next n
End Sub
Private Sub Prime(ByVal s As Integer, ByRef flage As Boolean) ' 判断s素数
Dim m%
flage = True
For m = 2 To Sqrt(s)
If s Mod m = 0 Then
flage = false
Exit For ' 非素数时,跳出
End If
Next m
End Sub
Dim flg As Boolean, i%, sum%, n%, t$
TextBox1.Text = ""
For n = 2 To 1000
sum = 1
t = "1" ' 存放各个因子之和表达式
i = 2
Do While i <=n ' 求给定正整数的所有因子
If n Mod i = 0 Then
sum =sum + i : t &= "+" & i
End If
i += 1
Loop
t = t & " = " & sum
Call Prime(sum, flg)
If flg Then
TextBox1.Text &= Str(n) & ": " & t & vbCrLf
End If
Next n
End Sub
Private Sub Prime(ByVal s As Integer, ByRef flage As Boolean) ' 判断s素数
Dim m%
flage = True
For m = 2 To Sqrt(s)
If s Mod m = 0 Then
flage = false
Exit For ' 非素数时,跳出
End If
Next m
End Sub
全部回答
- 1楼网友:猎心人
- 2021-04-06 22:54
请编写函数countvalue(),它的功能是:求n以内(不包括n)同时能被3和7将一正整数序列{k1,k2,,k9}重新排列成一个新的序列。新序列中,比k1
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯