标题:VB.net 双重循环问题
取消只看楼主
aliceabcd
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-6-16
 问题点数:0 回复次数:1 
VB.net 双重循环问题
验证哥德巴赫猜想:任意一个大于等于6的偶数都可以分解为两个质数之和。
基本思想:n为大于等于6的任一偶数,可分解为n1和n2两个数,
分别检查n1和n2是否为素数,如都是,则为一组解。
如n1不是素数,就不必再检查n2是否素数。先从n1=3开始,
检验n1和n2(n2=N-n1)是否素数。然后使n1+2
再检验n1、n2是否素数,… 直到n1=n/2为止。
我的代码:
 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Label2.Text = ""
        Dim a, n, i, j, k, fir, sec As Integer, flag, fla As Boolean
        a = Val(TextBox1.Text)
        For n = 3 To a / 2 Step 2
            flag = True
            For i = 2 To (n - 1)
                If n Mod i = 0 Then
                    flag = False : Exit For
                End If
            Next i
            If flag Then
                fir = n
                sec = a - n
                For k = 3 To sec / 2 Step 2
                    fla = True
                    For j = 2 To (k - 1)
                        If n Mod j = 0 Then
                            fla = False : Exit For
                        End If
                    Next j
                    If fla Then
                        Label2.Text += a.ToString + "=" + fir.ToString + "+" + sec.ToString + Chr(10)
                    ElseIf fla = False Then
                        Exit For
                    End If
                Next k
            ElseIf flag = False Then
                Exit For
            End If
        Next n
    End Sub
End Class
结果出来的不对,一样的结果出来好几遍,求大神帮改!!!
搜索更多相关主题的帖子: Object 哥德巴赫 
2017-06-16 16:04
aliceabcd
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-6-16
得分:0 
2017-06-16 16:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-478660-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044849 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved