求用VB编一个分解质因数的程序
2个回答
展开全部
Private Sub Command1_Click()Dim M As IntegerM = Val(InputBox("输入一个整数:"))
Print M & "=";
Do While M <> 0
For I = 2 To M
If M Mod I = 0 ThenPrint I;M = M \ IExit ForEnd IfNextIf M = 1 Then Exit DoPrint "*";LoopEnd Sub
从百度百科上抄袭来的。呵呵。另外,上面的程序也可以从2到sqrt(M)来除。没必要到M,因为大于sqrt(M)的,一定有一个小于sqrt(M)的对应。可以省掉一定的运算量。
每个合数都可以写成几个质数相乘的形式。其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。 分解质因数只针对合数
Dim x, a, b, k As String Private Sub Command1_Click() a = Val(Text1.Text) x = 2 If a <= 1 Or a > Int(a) Then If a = 1 Then Text2.Text = "它既不是质数,也不是合数" Else MsgBox "请您先输入数据", vbOKOnly + vbInformation, "友情提示" End If Else Do While a / 2 = Int(a / 2) And a >= 4 If b = 0 Then Text2.Text = Text2.Text & "2" b = 1 Else Text2.Text = Text2.Text & "*2" End If a = a / 2 k = a Loop Do While a > 1 For x = 3 To Sqr(a) Step 2 Do While a / x = Int(a / x) And a >= x * x If b = 0 Then Text2.Text = Text2.Text & x b = 1 Else Text2.Text = Text2.Text & "*" & x End If a = a / x Loop Next k = a a = 1 Loop If b = 1 Then Text2.Text = Text2.Text & "*" & k Else Text2.Text = "这是一个质数" End If End If End Sub Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |