当然,下面是一个C#示例,用于查找并打印指定范围内的所有素数(质数)。这个示例采用了最基本的方法,即逐个检查范围内的每个数是否为素数。
using System;
class Program
{
static void Main(string[] args)
{
Console.Write("请输入范围的下限:");
int lower = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入范围的上限:");
int upper = Convert.ToInt32(Console.ReadLine());
Console.WriteLine($"{lower}到{upper}之间的素数有:");
for (int num = lower; num <= upper; num++)
{
if (IsPrime(num))
{
Console.WriteLine(num);
}
}
}
// 方法:判断一个数是否为素数
static bool IsPrime(int num)
{
if (num <= 1) return false; // 负数、0和1不是素数
if (num <= 3) return true; // 2和3是素数
// 此数必须能被2和3以外的数整除,才可能是非素数
if (num % 2 == 0 || num % 3 == 0) return false;
// 只需检查到sqrt(num)即可,因为如果num有一个因子大于它的平方根,
// 那么它必定还有一个小于或等于它的平方根的因子。
for (int i = 5; i * i <= num; i += 6)
{
if (num % i == 0 || num % (i + 2) == 0)
return false;
}
return true;
}
}
这段代码首先通过`Console.ReadLine()`方法从用户那里获取范围的下限和上限,然后使用一个`for`循环遍历这个范围内的每个数。对于每个数,它调用`IsPrime`方法来检查该数是否为素数。`IsPrime`方法通过一系列条件检查来判断一个数是否为素数,包括它是否小于等于1(不是素数),是否小于等于3(是素数),以及是否能被2或3以外的数整除。最后,它只检查到该数的平方根即可,因为如果一个数有一个大于其平方根的因子,那么它必定还有一个小于或等于其平方根的因子。