Насчет диапазона
longclaps написал правильно, объясню про остальное:
Этот блок кода:
if (!(i % j)){
break;
}
проверяет, делится ли нацело i на j, если остаток от деления i % j равен 0, значит число i составное и перебирать остальные делители не имеет смысла, и внутренний цикл прерывается.
Условие
if (j > (i / j))
проверяет, закончился ли полностью цикл перебора делителей, если j > (i / j) значит, что внутренний цикл не прерывался, а это значит что делителей для i не нашлось, и поэтому оно простое и i выводится на экран.