Почему второй цикл не запускается?
Он запускается один раз, когда e
равно 3 (это означает, что это происходит, когда P
равно9), в случае если ввод равен 10.
Измените это:
for (P; P<N; P++)
на это:
for (; P <= N; P++)
, поскольку первая часть не имела эффекта, ичто более важно, вы хотите проверить все N
номера, поэтому необходимо было изменить условие остановки.
Затем вам нужно изменить это:
for (int j=3;j<=e;j+=2)
на следующее:
for(int j = 2; j <= e; j+=2)
для проверки простых чисел предлагается здесь .
Кроме того, вам нужно изменить это:
if (P % j != 0)
на это:
if (P % j == 0)
, поскольку P
на самом деле является простым числом при выполнении условия.
Более того, вам необходимо избавиться от этого:
if(P % 2 == 0) continue;
поскольку, например, 2 - простое число, но оно удовлетворяет этому условию и не будет учитываться!