Sandeep505 Ответов: 2

Как найти простые числа из заданного диапазона


Привет,

Есть ли способ, чтобы мы могли дать диапазон и найти простые числа между заданным диапазоном? Когда я пытаюсь это сделать, и я даю 2 в качестве моего первого числа, и если я даю любое число в качестве второго числа, то код находит правильные простые числа между заданными числами. Но вместо 2, Если я дам любое другое число в качестве первого числа, а затем код испортится. Ошибка такова: он показывает все значения между заданным диапазоном. Код, который я написал, похож на код Рахула Амана.

Любая помощь будет оценена по достоинству.

Спасибо!

С уважением,

Сандип

Что я уже пробовал:

StringBuilder sb = new StringBuilder();
int firstNumber, secondNumber;
bool isPrime = true;
firstNumber = int.Parse(tbxPN.Text);
secondNumber = int.Parse(tbxSPN.Text);
sb.Append(" The required prime numbers between "+firstNumber+" and "+secondNumber+" are:<br>");
for (int i=firstNumber;i<=secondNumber;i++)
{
    for (int j=firstNumber;j<=secondNumber;j++)
    {
        if(i!=j && i % j == 0)
        {
            isPrime = false;
            break;
        }

    }
    if (isPrime)
    {
        sb.Append(""+i+"<br>");
    }
    isPrime = true;
}
lbResult.Text = sb.ToString();

[no name]

Ваше описание того, что вы называете проблемой, кажется желаемым поведением. В любом случае, научиться отлаживать код-это ценный навык, особенно когда вы копируете код из интернета, чтобы выполнить домашнее задание.

Sandeep505

К вашему сведению, во-первых, это не моя домашняя работа. И, во-вторых, я не копировал код. Если вы знаете, что в этом происходит не так, то скажите, иначе, пожалуйста,вы можете заниматься своей работой. Я знаю, как это выяснить самостоятельно.

[no name]

Тогда иди и сделай это сам. Это * домашнее задание, и вы сами признались, что скопировали код откуда-то еще.

Sandeep505

Ты можешь думать все, что хочешь, мне на это наплевать, и мне все равно. Я уже давно закончил школу и новичок в программировании. Пытаюсь учиться сама. И, к вашему сведению, я нашел решение этой проблемы. Такие люди, как ты, никогда не позволяют другим учиться.

2 Ответов

Рейтинг:
5

David_Wimbley

Вы говорите,что это не домашнее задание, но это очень" домашнее " задание. Поиск в google для вычисления простых чисел в c# принес бы вам массу результатов. Неважно, учитесь вы еще в школе или нет, единственный навык, который вам нужно освоить, - это исследование ваших проблем.

поиск простых чисел от 1 до 10 - поиск в Google[^]

Возвращает 691 тысячу результатов, и первые две ссылки отвечают на ваш вопрос. Но имейте в виду, что программирование не всегда обеспечивает один размер для всех решений...возможно, вам действительно придется немного поработать ногами, чтобы найти примеры массажа в интернете, чтобы удовлетворить ваши потребности. Поиск именно вашей проблемы часто не дает осмысленных решений.

С учетом сказанного, вот один из вариантов адаптации вашего кода к поиску простых чисел в заданном диапазоне.

Возьмите метод IsPrime по этой ссылке:

c# - проверьте, является ли число простым числом - переполнение стека[^]

А затем сократите свой код до 1 цикла. Что-то вроде этого:

for (int i = firstNumber; i <= secondNumber; i++)
{
    if (IsPrime(i))
    {
        sb.Append("" + i + "");
    }

}


Видите, как метод isprime был втиснут в ваш код? Вот что я имею в виду, делая небольшую работу ног, чтобы решить вашу проблему.


Sandeep505

Я не знаю, почему вы думаете, что это домашнее задание, те дни прошли для меня, чтобы сделать так называемую "домашнюю работу", это была моя собственная задача. Хотя я исправил это сам, а также проведя некоторые исследования на сайтах google. Хотя Спасибо за совет. Я ценю, что вы нашли время, чтобы посмотреть на него. Не обращай внимания!

David_Wimbley

Люди часто приходят на этот сайт, чтобы найти ответы на свои домашние задания в надежде, что кто-то сделает работу за них, чтобы они могли сдать свой класс.

С точки зрения того, как был представлен этот вопрос, он пахнет домашним заданием по многим причинам. Нахождение простых чисел из диапазона - довольно академическая проблема...у вас нет таких проблем в типичных бизнес-приложениях/CRUD-приложениях. Так что это здорово, что это не домашнее задание, но суть остается, критическое мышление-это то, что важно. Но рад слышать, что это звучит, как вы догадались.

Sandeep505

Я не знаю, как другие люди, но сегодня я впервые подписался на этот блог и опубликовал свой первый блог здесь сегодня.
И, может быть, это так пахнет, но я знаю, что делаю это для себя, я тоже не занимаюсь бизнесом, я новичок в программировании и пытаюсь научиться программированию, чтобы найти работу. В любом случае, спасибо за ваш совет, я буду помнить об этом в своем путешествии. Я ценю это.

David_Wimbley

Тогда желаю Вам удачи.

Sandeep505

Большое вам спасибо за ваше время.

Karthik_Mahalingam

если проблема исправлена, пожалуйста, закройте этот пост, нажав кнопку " Принять ответ"

Рейтинг:
16

Patrice T

Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.

С помощью отладчика вы увидите, что ошибаетесь при тестировании возможных делителей целого числа.
Возможные делители целого числа не зависят от последовательности, которую вы проверяете.
Если вы подумаете об этом, вы увидите, что вам нужно только целое число, которое вы хотите проверить, чтобы знать, что вам нужно сделать и когда остановиться. Вы также можете встроить тест на примитивность в функцию isPrime()

[Обновление]
К DownVoters:
Я хотел бы знать, почему вам не нравится этот ответ ?
Что плохого в том, чтобы сделать рекомендацию по изучению отладчика ?


David_Wimbley

Мои два цента, я думаю, что им не нравится ваш "консервированный" ответ "используйте отладчик". Они получают несколько предложений и отдают голоса вверх и вниз. Если бы они продолжали читать, то увидели бы, что вы обычно даете некоторые рекомендации (в данном случае комментарий isPrime ()).

Может быть, переместите свою руководящую часть этого фрагмента наверх, а затем консервированный ответ "вы должны использовать отладчик" вниз.

Я бы дал ответ, но для меня не имеет значения, если вы оставите свой формат таким, какой он есть, просто хотел поделиться своими мыслями

Patrice T

Спасибо за совет, я подумаю.