2 Данилка. Так чтоб сравнивать надо брать идентичные программы, отличающиеся только синтаксисом. У тебя же они разные.
Попробовал накатать свой вариант и получилось вот так 🙂 (в pivot числа)
select * from pivot awhere i>3 and i<10000and not exists(select 1 from pivot b where b.i between 2 and sqrt(a.i) and a.i%b.i=0)
А твой вариант можно ускорить, если завести массив для простых чисел (сначала в нем только один элемент 2) по мере нахождения добавлять их в него. И делить именно на простые числа, а не на все подряд.
Copyright ©