1. Переименуйте ваши переменные.
Во-первых, если это домашнее задание, вы получите плохие оценки (если ваш учитель того стоит), потому что у вас бессмысленные имена переменных (да, даже numberOfPrimes
неверно и должно называться requiredNumberOfPrimes
. Когда я вижу это Я задаю себе вопрос: «Сколько он хочет или сколько нашел?»).
Во-вторых, это поможет вам понять, куда вы идете не так. Переменные должны быть логически названы в соответствии с тем, что они представляют. Если вы не можете объяснить, что представляют ваши переменные (например, a & b), вы, вероятно, не сможете объяснить, что вы делаете с ними.
2. Посмотри на свои петли.
for (int x = 0; x < numberOfPrimes; x++)
Структура цикла for (initialise; 'should I continue?'; 'each loop do this')
. Поэтому в вашем цикле
- Вы продолжаете, пока x не станет равным или большим, чем
numberOfPrimes
*.
- Каждый раз, когда вы проходите цикл, вы добавляете 1 к
x
.
Вы уверены, что это то, что вы хотите сделать? x
отображает количество найденных простых чисел. Так почему бы не увеличить его, когда вы найдете простое число, а не когда вы запускаете цикл?
for (int a = 2; a <= x ; ++a)
for (int b = 2; b < a; ++b)
Вы смотрите на каждое целое число от 2 до x
включительно. И для каждого из этих целых чисел a
вы просматриваете каждое целое число от a
до 2 включительно. Что вы собираетесь делать с этими целыми числами?
Каждый раз, когда вы проходите цикл верхнего уровня (цикл x
), вы начинаете цикл a
с нуля, и каждый раз, когда вы проходите цикл a
, вы запускаете свой цикл *1037*. 1039 * петля с нуля.
Таким образом, если x
равно 10, вы пробегаете один раз (a = 2), затем вы снова проходите через (a = 2, a = 3), затем вы снова проходите через a (a = 2, a = 3, а = 4), тогда ...
3. Собирайте свои результаты, а не записывайте их в Консоль.
var primes = new List<int>();
Это так просто. Когда вы найдете простое число, primes.Add(a);
. Затем вы знаете, сколько простых чисел вы нашли (primes.Count
), вы можете использовать список простых чисел, чтобы эффективно определить следующее простое число, и можете использовать этот список позже, если потребуется.