📅  最后修改于: 2023-12-03 15:26:26.101000             🧑  作者: Mango
在计算机科学中,求素数是一个很有用的问题。本文将介绍如何在C#中求最大的素数。
求最大的素数,我们需要一个质数筛法。筛子的原理是遍历给定的范围,去掉范围内所有数的倍数,最后留下的就是质数。
该算法的步骤如下:
public static int GetLargestPrime(int n)
{
bool[] isPrime = new bool[n + 1];
for (int i = 0; i < isPrime.Length; i++)
{
isPrime[i] = true;
}
for (int i = 2; i * i <= n; i++)
{
if (isPrime[i])
{
for (int j = i * i; j <= n; j += i)
{
isPrime[j] = false;
}
}
}
for (int i = n; i >= 2; i--)
{
if (isPrime[i])
{
return i;
}
}
return -1;
}
int n = 100; // 设置一个上限
int result = GetLargestPrime(n);
Console.WriteLine("The largest prime number less than {0} is {1}.", n, result);
输出:
The largest prime number less than 100 is 97.
本文介绍了C#中求最大的素数的方法,采用质数筛法,算法步骤简单清晰,代码实现也很简单,可以供大家参考。