判断101-200之间有多少个素数,并输出所有素数。
我写出了求101到200的素数并把它一一列举出来,但我不知道怎么输出一共有几个素数static void Main(string[] args)
        {
            int n;
            for (n = 101; n <= 200; n++)
            {
                if (n % 2 != 0)
                   {
                       System.Console.WriteLine("101-200之间的素数:" + n);
                   }
            }
        }

解决方案 »

  1.   

    static void Main(string[] args)
            {
                int n;
                int sum;
                for (n = 101; n <= 200; n++)
                {
                    if (n % 2 != 0)
                       {
                           System.Console.WriteLine("101-200之间的素数:" + n);
                             sum+=1
                       }
                }
                  System.Console.WriteLine("101-200之间的素数共:" + sum);        }
      

  2.   

    static void Main(string[] args)
            {
                int n;
                int sum=0;
                for (n = 101; n <= 200; n++)
                {
                    if (n % 2 != 0)
                       {
                           System.Console.WriteLine("101-200之间的奇数:" + n);
                           sum++;
                       }
                }
                System.Console.WriteLine("101-200之间的奇数共:" + sum);        }
    另外,你的程序求的是数,而不是素数(质数)!
      

  3.   

    class Program
    {
            static void Main(string[] args)
            {
                System.Console.Write("101-200之间的素数:");
                int n;
                int sum = 0;
                for (n = 101; n <= 200; n += 2)
                {
                    for (int i = 3; i < n; i += 2)
                    {   
                       if (n % i == 0)
                       {
                           goto next;
                       }
                    }
                    System.Console.Write(" " + n);
                    sum++;
                    next:;
                }
                System.Console.WriteLine("\r\n101-200之间的素数个数:" + sum);
            }} 
      

  4.   

    晕 怎么这也用GOTO了  直接终止内循环不就是了吗?
      

  5.   

    不用 goto 的话,就或者要用另外一个函数,或者要增加一个 bool 量。
      

  6.   


    // 如果不用 goto,就要增加一个 bool 量: isPrimeclass Program
    {
            static void Main()
            {
                System.Console.Write("101-200之间的素数:");
                int sum = 0;
                for (int n = 101; n <= 200; n += 2)
                {
                    bool isPrime = true;
                    for (int i = 3; i <= System.Math.Sqrt(n); i += 2)
                    {   
                       if (n % i == 0)
                       {
                           isPrime = false;
                           break;
                       }
                    }
                    if (isPrime)
                    {
                       System.Console.Write(" {0}", n);
                       sum++;
                    }
                }
                System.Console.WriteLine("\r\n101-200之间的素数个数:{0}", sum);
            }
    }