Проверява само цикъла for 1/3n пъти, така че все още е технически линеен, предполагам? Въпреки това наистина не разбирам защо не би било O(logn), защото много пъти код с O(logn) време за изпълнение завършва с проверка около 1/3n. O(logn) винаги ли разделя опциите на 2 всеки път?
int a = 0;
for (int i = 0; i < n; i = i+3)
a = a+i;
;
следi = i + 3
е синтактична грешка. - person ajb   schedule 19.03.2014