Не работает программа на поиск простых чисел

В чем заключается проблема? Программа должна находить простые числа в массиве и умножать их на 2.


    import java.util.Scanner;

public class Main 
{
    public static void main(String[] args) 
    {
        Scanner scanner = new Scanner(System.in);
        int n = 5;
        int k = 0;
        boolean just = true;
        int[] mas = new int[n];

        for(int i = 0; i < n; i++)
        {
            mas[i] = scanner.nextInt();
        }

        for(int i = 0; i < n; i++)
        {
            for(int j = 2; j < mas[i] / 2; j++)
            {
                if(mas[i] % j == 0)
                {
                    just = false;
                    break;
                }
            }
            if(just == true)
            {
                k++;
                mas[i] *= 2;
            }
        }

        System.out.print("\n");

        for(int i = 0; i < n; i++)
        {
           System.out.print(mas[i] + " ");
        }

        System.out.println("\nКол-во" + k);
    }
}

Сам процесс работы программы:

А конечный вывод должен был быть 15 146 142 75 77


Ответы (1 шт):

Автор решения: Эникейщик

Чисел много, а переменная just - одна на всех, которая всегда будет false, если в списке есть хоть одно составное число. Кстати, простое число по-английски - prime number. К тому же эта переменная совсем не нужна. Нашел составное число - прекращай внутренний цикл, если нет - то умножай mas[i] на два тут же на месте. А если все же хочется использовать эту переменную, то нужно в начале каждой итерации и снова ставить на true.

PS. Cравнениe if (just == true) надо записывать просто как if (just)

→ Ссылка