Private Sub Form_click()
  For n = 101 To 300 Step 2
      k = Int(Sqr(n))
      i = 2
      swit = 0
      While i <= k And swit = 0
           If n Mod i = 0 Then
              
              i=i+1
           Else
              print n
              swit = 1
              
           End If
      Wend
      
    Next n
     
End Sub
这个程序为什么打印不出100与300之间的素数

解决方案 »

  1.   

    Private Sub Form_click()
        Dim i As Integer, j As Integer
        For i = 101 To 300 Step 2
            For j = 2 To Sqr(i)
                If i Mod j = 0 Then Exit For
            Next
            If j > Sqr(i) Then Print i
        Next
    End Sub
      

  2.   

    把你的程序改进了一下
    Private Sub Command1_Click()
      Dim n  As Long
      Dim k As Long, i As Long, swit As Long
      
      For n = 101 To 300 Step 2
          k = Int(Sqr(n))
          i = 2
          swit = 0
          While i <= k And swit = 0
               If n Mod i = 0 Then
                  
                  swit = 1
                  
               End If
               i = i + 1
          Wend
          
          If swit = 0 Then
                Print n
          End If
        Next n
    End Sub
      

  3.   

    以你和程序
       While i <= k And swit = 0
               If n Mod i = 0 Then
                  
                  i = i + 1
               Else
                  Print n
                  swit = 1
                  
               End If
          Wend
    当n不能被i整除时就会打印出来,而i是2到sqr(n)的数当然会全部打印