求1到n中的所有质数?

解决方案 »

  1.   

    using System;public class Test
    {
      static void Main()
      {
        int N = 100;
        Console.Write(2);
        for (int i = 3; i < N; i += 2)
        {
          for (int k = 3; k <= (int)Math.Sqrt(i); k += 2)
          {
            if (i % k == 0) goto next;
          }
          Console.Write(" {0}", i);
          next: ;
        }
      }
    }
      

  2.   

    private string Test(int N)
    {
    string strTemp=""; for (int i = 3; i < N; i++)
    {
    if(i%2==0)
    {
    continue;
    }
    for (int j = 3; j< (int)Math.Sqrt(i);j++)
    {
    if (i!=j && i % j == 0) 
    {
    goto next;
    }
    }
    strTemp+=i+"|";
    next: ;
    }
    return strTemp;
    }
      

  3.   

    用int类型。是不是不太严谨呀~~~~可能会出现溢出错误哦~~
      

  4.   

    for (int j = 3; j< (int)Math.Sqrt(i);j++)
    改为for (int j = 3; j<= (int)Math.Sqrt(i);j++)
      

  5.   

    小弟不才请问各位:
    for (int j = 3; j< (int)Math.Sqrt(i);j++)
    {
    if (i!=j && i % j == 0) 
    {
    goto next;
    }
    为什么能判断是质数?
    Math.Sqrt有什么意义?
    能不能请各位详细解释一下。谢谢各位!
      

  6.   

    Math.Sqrt()是开根号的意思,if (i!=j && i % j == 0) {goto next;}就是说如果只要整除一个数字(非本身),就跳出循环.