用C#输出1—100以内的质数。谢谢各位高手相助!!

解决方案 »

  1.   

    http://hi.baidu.com/swinggucas/blog/item/78b126a0c6750d8246106444.html
    给你个参考
      

  2.   

    首先建立一个布尔型1维数组a,长度为j-i,初始值为true。首先用第二种方法求得i、j之间的第一个质数m。求得m以后,将所有小于i的m的倍数所在的数组(即a[m的倍数-i])位置全部设为false。然后进行下一步,从n=m++开始,如果a[n-i]已经被设置为false,则n++,直到出现首个为true的位置p,再将所有小于i的p的倍数所在的数组位置置为false。继续下一步,直到n>根号j为止,这样所有为true的数组id(如果i=1则0除外,id从1开始)+i 即为质数。
      

  3.   

    #include <stdio.h>
    #include <math.h>bool IsPrime(int n);void main(void)
    {
     for (int i = 2; i <= 100; i ++)
     {
      if (IsPrime(i))
      {
       printf("%d是质数\r\n", i);
      }
     }
    }bool IsPrime(int n)
    {
     int nRoot = int(sqrtf(n));
     for (int i = 2; i < nRoot; i ++)
     {
      if (n % i == 0)
       return false;
     }
     return true;

    c里可以这样写,思路给你提供了,就看你把必要的部分修改哈就可以了
      

  4.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace PrimeNumber
    {
        class Program
        {
            static void Main(string[] args)
            {
                
                Console.WriteLine("1--100之内的质数有:\n");
                int writeamount = 0;
                for (int i = 2; i <=100; i++)
                {
                    int ifprime = 0;
                    for (int j = 2; j <i; j++)
                    {
                        if (i % j == 0)
                        {
                            ifprime = 1;
                            break;
                        }
                    }
                    if (ifprime==0)
                    { 
                        Console.Write("{0};",i);
                        writeamount++;
                    }
                    if (writeamount == 15)
                    {
                        Console.Write("\n");
                        writeamount = 0;
                    }           }
                Console.Write("\n");
            }
        }
    }【原创家庭记账簿1.2.5,简单实用,通俗易懂,欢迎工薪阶层、家庭主妇下载使用 http://download.csdn.net/source/1900400】
      

  5.   


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace PrimeNumber
    {
        class Program
        {
            static void Main(string[] args)
            {
                
                Console.WriteLine("1--100之内的质数有:\n");
                int writeamount = 0;
                for (int i = 2; i <=100; i++)
                {
                    int ifprime = 0;
                    for (int j = 2; j <= Math.Sqrt(i); j++)//优化一下。用平方根循环次数少一些                {
                        if (i % j == 0)
                        {
                            ifprime = 1;
                            break;
                        }
                    }
                    if (ifprime==0)
                    { 
                        Console.Write("{0};",i);
                        writeamount++;
                    }
                    if (writeamount == 15)
                    {
                        Console.Write("\n");
                        writeamount = 0;
                    }           }
                Console.Write("\n");
            }
        }
    }【原创家庭记账簿1.2.5,简单实用,通俗易懂,欢迎工薪阶层、家庭主妇下载使用 http://download.csdn.net/source/1900400】
      

  6.   

    [Quote=引用 8 楼 hellowordc 的回复:]
    引用 6 楼 tianliang1 的回复:
    int nRoot = int(sqrtf(n));
    for (int i = 2; i < nRoot; i ++) //此处应为for (int i = 2; i <= nRoot; i ++)
    {
      if (n % i == 0)
      return false;
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace PrimeNumber
    {
        class Program
        {
            static void Main(string[] args)
            {
               
                Console.WriteLine("1--100之内的质数有:\n");
                int writeamount = 0;
                for (int i = 2; i <=100; i++)
                {
                    int ifprime = 0;
                    for (int j = 2; j <= Math.Sqrt(i); j++)//优化一下。用平方根循环次数少一些                {
                        if (i % j == 0)
                        {
                            ifprime = 1;
                            break;
                        }
                    }
                    if (ifprime==0)
                    {
                        Console.Write("{0};",i);
                        writeamount++;
                    }
                    if (writeamount == 15)
                    {
                        Console.Write("\n");
                        writeamount = 0;
                    }          }
                Console.Write("\n");
            }
        }
    }
    【原创家庭记账簿1.2.5,简单实用,通俗易懂,欢迎工薪阶层、家庭主妇下载使用 http://download.csdn.net/source/1900400】
    [/Quot
    还有别的方法吗?