Не работает программа на поиск простых чисел
В чем заключается проблема? Программа должна находить простые числа в массиве и умножать их на 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)
