Я пытаюсь получить сумму первых 1000 простых чисел в C#, но код, который я использую, очень медленный, требуется навсегда для вычисления и до сих пор не возвращался с действительной суммой.Сумма первых 1000 простых чисел в C#
Я новичок в этом, и я надеялся, что кто-нибудь из вас, ребята, может взглянуть и помочь мне сделать мой код эффективным, а также сообщить мне, что я делаю неправильно. Также дайте мне знать, если я делаю что-то неправильно в отношении правил форума.
Заранее благодарим за ценное время!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
long sumOfPrime=0;
Console.WriteLine("Calculating Sum of Prime");
for (int i = 1, primeCounter = 0; primeCounter <= 1000; ++i)
{
if (!IsPrime(i))
{
continue;
}
else
{
primeCounter = +1;
sumOfPrime = +i;
}
}
Console.WriteLine(sumOfPrime);
}
static bool IsPrime(int number)
{
if (number == 1)
{
return false;
}
if (number == 2)
{
return true;
}
for (int i = 2; i <= Math.Ceiling(Math.Sqrt(number)); ++i)
{
if (number % i == 0)
{
return false;
}
}
return true;
}
}
}
Ну, сначала попробуйте найти первые 1000 простых чисел. При этом вы можете вывести результат, чтобы вы могли узнать: a) если в первую очередь получить числа, и b) где происходит замедление. Когда у вас 1000 чисел в массиве или списке, их суммирование должно быть тривиальным. – GolezTrol
Этот вопрос относится к другим сайтам, таким как [Обзор кода] (http://codereview.stackexchange.com/) – Marusyk
Посмотрите на различные алгоритмы, доступные для генерации простых чисел. Бывают более быстрые. https://en.wikipedia.org/wiki/Generating_primes –