Primes.cs文件
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { public class Primes { private long min; private long max; public Primes() : this(2, 100) { } public Primes(long minimum, long maximum) { if (min < 2) min = 2; else min = minimum; max = maximum; } public IEnumerator GetEnumerator() { for (long possiblePrime = min; possiblePrime <= max; possiblePrime++) { bool isPrime = true; for (long possibleFactor = 2; possibleFactor <= (long)Math.Floor(Math.Sqrt(possiblePrime)); possibleFactor++) { long remainderAfterDivision = possiblePrime % possibleFactor; if (remainderAfterDivision == 0) { isPrime = false; break; } } if (isPrime) { yield return possiblePrime; } } } } }
Program.cs文件
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Primes primesFrom2To1000 = new Primes(2, 10000); //此处定义范围 foreach (long i in primesFrom2To1000) Console.Write("{0}",i+"\t"); Console.WriteLine(); Console.ReadKey(); } } }
C#中采用迭代的方法获取素数,范围自定
最新推荐文章于 2022-08-24 21:30:21 发布