Member 12833355 Ответов: 2

Использование цикла do while для определения простого числа?


Привет, я написал простую программу для определения простого числа с помощью цикла do while, но у меня возникли проблемы с получением правильного вывода. Любая помощь будет оценена по достоинству. У меня такое чувство, что это как-то связано с обновлениями в моих циклах?

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

public class DoWhile{
    public static void main(String[]args)
    {
        int num=13;
        do
        {
            System.out.println(num + " is a prime number");
            num++;
        }
        while(num%2==1);
        
        if(num%2==1)
        {
        do
        { 
            System.out.println(num+ " is NOT a prime number");
            num++;
        }
        while (num%2==0);
    }
}
}

2 Ответов

Рейтинг:
2

OriginalGriff

Нет, это связано с тем, что он не является алгоритмом детектора простых чисел или даже близким к нему.
Взгляните на это: Сито Эратосфена - Википедия[^] и подумайте о том, чтобы попытаться реализовать это.


Рейтинг:
1

Patrice T

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

public class DoWhile{
    public static void main(String[]args)
    {
        int num=13;
        int last=100;
        do
        {
            if(IsPrime(num))
            {
                System.out.println(num + " is a prime number");

            }
            else
            {
                System.out.println(num+ " is NOT a prime number");

            }
            num++;
        }
        while(num <==last);
    }
}

Вам нужно определить функцию IsPrime это позволит проверить, является ли число простым или нет.

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

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

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

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