C#求范围内素数的完整攻略
1. 实现思路
- 定义一个方法
bool IsPrime(int n)
用于判断是否为素数 - 遍历2到n-1,如果能整除n则不是素数,否则是素数
- 定义一个方法
List<int> GetPrimes(int start, int end)
用于获取指定范围内的素数列表 - 遍历start到end,如果该数是素数则添加到列表中
- 注意:如果start小于2,则从2开始遍历
2. 示例说明
示例1:获取1到100内的所有素数
int start = 1;
int end = 100;
List<int> primes = GetPrimes(start, end);
foreach(int p in primes)
{
Console.Write(p + " ");
}
输出结果:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
示例2:获取1001到1100内的所有素数
int start = 1001;
int end = 1100;
List<int> primes = GetPrimes(start, end);
foreach(int p in primes)
{
Console.Write(p + " ");
}
输出结果:
1009 1013 1019 1021 1031 1033 1039 1049 1051 1061 1063 1069 1087 1091 1093 1097
3. 代码实现
using System;
using System.Collections.Generic;
class Program
{
static bool IsPrime(int n)
{
for(int i = 2; i <= (int)Math.Sqrt(n); i++)
{
if(n % i == 0)
return false;
}
return true;
}
static List<int> GetPrimes(int start, int end)
{
List<int> primes = new List<int>();
if(start < 2)
start = 2;
for(int i = start; i <= end; i++)
{
if(IsPrime(i))
{
primes.Add(i);
}
}
return primes;
}
static void Main(string[] args)
{
int start = 1;
int end = 100;
List<int> primes = GetPrimes(start, end);
foreach(int p in primes)
{
Console.Write(p + " ");
}
}
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#求范围内素数的示例分享(c#求素数) - Python技术站