private static IEnumerable <int> FirstPrivateNumbers(int N)
 {
     return(Enumerable.Range(2, PrimeTool.nth_prime_upper(N))
            .AsParallel()
            .WithDegreeOfParallelism(Environment.ProcessorCount)
            .WithExecutionMode(ParallelExecutionMode.ForceParallelism)
            .WithMergeOptions(ParallelMergeOptions.NotBuffered)          // remove order dependancy
            .Where(x => PrimeTool.IsPrime(x))
            .TakeWhile((n, index) => index < N)
            .OrderBy(x => x).Take(500));
 }
        private static string FirstPrimeNumbers(int count)
        {
            StringBuilder sb = new StringBuilder();
            int           i  = 2;
            int           k;

            for (k = 1; k <= count;)
            {
                bool prime = PrimeTool.IsPrime(i);
                if (prime)
                {
                    sb.Append(" " + i);
                    k++;
                }
                i++;
            }
            Console.WriteLine($"The count is {k - 1}");
            return(sb.ToString());
        }