/*
question: 0~n内的素数
*/
using System;
namespace TestApp
{ /*
素数是指除1及自身以外, 不能被其他数整除的数.
最小的素数是2, 其他的偶数均不是素数
对于一个奇数k, 使用3~k的平方根(取整)之间的每个奇数进行运算, 如果找到一个奇数j能被k除尽,
则k不是素数; 而只有测试完3~k的平方根范围中的所有奇数都不能被k除尽, 才能确定k是素数.
*/
class Test
{
public void calculate(int n)
{
int count, j, k;
if(n>=2)
{
Console.Write("2"+ "/t");
}
if(n>=3)
{
count = 1; //目前有一个素数, 即2
k = 3; //从奇数3开始测试, 偶数不需要测试
do
{
j=3;
while((j <= (Math.Sqrt(k)))&&(k%j!=0))
{
j +=2;
}
if(j > Math.Sqrt(k))
{
count ++;
Console.Write(k +"/t");
if(count%5 == 0)
Console.WriteLine();//每行输出5个数
}
k += 2;//测试下一个奇数是否是素数
}while(k <= n);
Console.WriteLine("/n共有{0}个素数!", count);
}
}
static void Main(string[] args)
{
Test test = new Test();
int i = 1;
while(i > 0)
{
Console.Write("输入一个整数: ");
i = Int32.Parse(Console.ReadLine());
test.calculate(i);
}
}
}
}
C#基础编程---素数
最新推荐文章于 2023-08-05 17:09:47 发布