写一个控制台应用程序,输出1-100之间的所有素数

解决方案 »

  1.   

    如果我来测试一个在校学生,我会这样出:输出从小到大第3000位的素数。你的那个问题太简单了,给你抄袭实在无趣。-------------------------------------------------------在我 1.6GHz 的笔记本上,我计算得到第3000个素数是 27449,计算用时 9 毫秒。
      

  2.   

    第1个素数是2。计算用时1毫秒。
    第30个素数是113。计算用时0毫秒。
    第300个素数是1987。计算用时0毫秒。
    第3000个素数是27449。计算用时6毫秒。
    第509个素数是3637。计算用时0毫秒。
    为什么第509大素数是3637?因为这个计算素数的程序使用static List<int>来记录运算中素数表,当计算第3000个素数时是从301个素数开始计算的,所以仅需要7毫秒(而单独计算时是9毫秒),计算509个素数不需要计算直接从素数表拿出结果。
      

  3.   

    public bool outS(long num)
            {
                double intSqrtOfNum = Math.Sqrt((double)num);
                int i = 0;
                for (i = 2; i < intSqrtOfNum; i++)   //不懂这里为什么可以这样写  这样写比我写的少循环了好多次   
                {
                    if (num % i == 0)
                        break;
                }
                if (i > intSqrtOfNum)
                    return true;
                return false;
            }main:
    int sum = 0;
                int count = 0;
                for (int i = 2; i < 1000; i++)
                {
                    if (r.outS((long)i))
                    {
                        Console.WriteLinei);
                        sum = sum + i;
                        count++;
                    }
                }
                Console.WriteLine("The sum is:" + sum);
                Console.WriteLine("The count is:" + count);
      

  4.   

    public bool outS(long num)
            {
                double intSqrtOfNum = Math.Sqrt((double)num);
                int i = 0;
                for (i = 2; i < intSqrtOfNum; i++)   //不懂这里为什么可以这样写  这样写比我写的少循环了好多次   
                {
                    if (num % i == 0)
                        break;
                }
                if (i > intSqrtOfNum)
                    return true;
                return false;
            }main:
    int sum = 0;
                int count = 0;
                for (int i = 2; i < 1000; i++)
                {
                    if (r.outS((long)i))
                    {
                        Console.WriteLinei);
                        sum = sum + i;
                        count++;
                    }
                }
                Console.WriteLine("The sum is:" + sum);
                Console.WriteLine("The count is:" + count);
      

  5.   

    我做了一下SP1234出的题
    static void Main()
            {
                List<int> list = new List<int>();
                list.Add(2);
                int count=0;
                int i = 2;
                bool iswhile = true;
                while(iswhile)
                {
                    bool iszhishu = true;
                    for (int j = 2; j < i; j++)
                    {
                        if (i%j==0)
                        {
                            iszhishu = false;
                            break;
                        }
                    }
                    if (iszhishu)
                    {
                        list.Add(i);
                    }
                    if (list.Count == 3000)
                        break;
                    i++;
                }
                for (int m = 0; m < list.Count; m++)
                {
                    Console.WriteLine(list[m].ToString());
                    count += list[m];
                }
                Console.WriteLine(count.ToString());
                Console.ReadLine();
            }
    不知道能得几分~~
      

  6.   

    我做了一下SP1234出的题
    static void Main()
            {
                List<int> list = new List<int>();
                list.Add(2);
                int count=0;
                int i = 2;
                bool iswhile = true;
                while(iswhile)
                {
                    bool iszhishu = true;
                    for (int j = 2; j < i; j++)
                    {
                        if (i%j==0)
                        {
                            iszhishu = false;
                            break;
                        }
                    }
                    if (iszhishu)
                    {
                        list.Add(i);
                    }
                    if (list.Count == 3000)
                        break;
                    i++;
                }
                for (int m = 0; m < list.Count; m++)
                {
                    Console.WriteLine(list[m].ToString());
                    count += list[m];
                }
                Console.WriteLine(count.ToString());
                Console.ReadLine();
            }
    不知道能得几分~~
      

  7.   

    我做了一下SP1234出的题
    static void Main()
            {
                List<int> list = new List<int>();
                list.Add(2);
                int count=0;
                int i = 2;
                bool iswhile = true;
                while(iswhile)
                {
                    bool iszhishu = true;
                    for (int j = 2; j < i; j++)
                    {
                        if (i%j==0)
                        {
                            iszhishu = false;
                            break;
                        }
                    }
                    if (!iszhishu)
                    {
                        list.Add(i);
                    }
                    if (list.Count == 3000)
                        break;
                    i++;
                }
                for (int m = 0; m < list.Count; m++)
                {
                    Console.WriteLine(list[m].ToString());
                    count += list[m];
                }
                Console.WriteLine(count.ToString());
                Console.ReadLine();
            }
    不知道能得几分~~
      

  8.   

    using System;
    using System.Collections.Generic;
    using System.Text;namespace PrimeNumber
    {
        class Program
        {
            static void Main(string[] args)
                //打印从任一个数开始到任一个数结束的所有质数
                
            {
                int num1;
                int num2;
                int num=0;
                Console.WriteLine("时间:2007/11/1   版本:1.0   作者:向朝");
                Console.WriteLine("");
                Console.WriteLine("计算从N——>M的所有质数,并按格式将其打印出来!");
                
                Console.WriteLine("请输入N的值:");
                num1 = int.Parse(Console.ReadLine());
                Console.WriteLine("请输入M的值:");
                num2 = int.Parse(Console.ReadLine());
                Console.WriteLine("你所需要打印的质数如下所示:");
                for (int i = num1; i < num2;i++ )
                {
                  
                    bool result = true;
                    for (int j = 2; j < i;j++ )
                    {
                        if(i%j==0){
                            result = false;
                            break;
                        }
                       
                       
                        
                    }
                    if (!result)
                    {
                        continue;
                    } 
                    num++;
                    if (num > 1 & (num - 1) % 10 == 0)
                    {
                        Console.WriteLine("");
                    }
                    Console.Write("{0,-4}  ",i);
                }
                Console.WriteLine("");
                Console.WriteLine("一共有{0}个质数!",num);
                Console.ReadLine();            
            }
        }
    }