Параллельная проверка диапазона чисел на простоту - C#
Формулировка задачи:
Как произвести поиск всех простых чисел в заданном пользователем диапазоне, используя параллельные вычисления?
Решение задачи: «Параллельная проверка диапазона чисел на простоту»
textual
Листинг программы
static void Main(string[] args) { System.Collections.Concurrent.ConcurrentBag<int> primes = new System.Collections.Concurrent.ConcurrentBag<int>(); int a = int.Parse(Console.ReadLine()); int b = int.Parse(Console.ReadLine()); var range = Enumerable.Range(a, b - a); //b не включено Parallel.ForEach(range, (n) => { if (IsPrime(n)) primes.Add(n); }); Console.WriteLine($"Prime numbers founded: {primes.Count}"); Console.ReadKey(); } static bool IsPrime(int number) { if (number == 1) return false; if (number == 2) return true; if (number % 2 == 0) return false; var boundary = (int)Math.Sqrt(number); for (int i = 3; i <= boundary; i += 2) { if (number % i == 0) return false; } return true; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д