求用VB编一个分解质因数的程序

 我来答
万年弱受ADjk5
2013-12-20 · TA获得超过169个赞
知道答主
回答量:178
采纳率:66%
帮助的人:59.9万
展开全部
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
听不清啊
高粉答主

推荐于2018-08-10 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

Private Sub Command1_Click()
  n = CLng(InputBox("N="))
  i = 2
  Print n; "=";
  While i * i <= n
    While n Mod i = 0
      Print i;
      n = n \ i
      If n > 1 Then Print "*";
    Wend
    i = i + 1
  Wend
  If n > 1 Then Print n;
  Print
End Sub
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式