c#学习

c#实现输出任意整数内的质数

2019-12-11  本文已影响0人  李药师_hablee

程序

using System;

namespace ConsoleApp9
{
    class Program
    {
        static void Main(string[] args)
        {
            const int MAX = 101;//计算100以内质数
            //false为质数,true为非质数
            //声明後若没有给定初值,其默认值为false
            bool[] prime = new bool[MAX];
            prime[0] = true;//0不是质数
            prime[1] = true;//1不是质数
            int num = 2, i;
            //将1-MAX中不是质数的逐一过滤掉,以此方式找到所有质数
            while(num<MAX)
            {
                if (!prime[num])//在num是质数的情况下
                {
                    for (i = num+num; i < MAX; i = i + num)
                    {
                        if (prime[i])
                        {
                            //如果是非质数,跳过
                            continue;
                        }
                        prime[i] = true;//否则记为非质数
                    }
                }
                num = num + 1;
            }
            //打印质数
            int cnt = 0;
            for(i=2;i<MAX;i++)
            {
                if (!prime[i])
                {
                    //如果是质数就打印
                    Console.Write("{0,-5} ", i);//每个数字占5位,左对齐
                    cnt++;
                    if (cnt % 5 == 0)
                        Console.WriteLine();//5个数一行
                }
            }            
            Console.WriteLine("共有{0}个质数",cnt);
        }
    }
}

结果

捕获.JPG
上一篇下一篇

猜你喜欢

热点阅读