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);
}
}
}