Я просто не понял, почему сложность времени O (n ^ 2) вместо O (n * logn)?
Второй цикл увеличивается на 2 каждый раз, не правда ли, O (logn)?
void f3(int n){
int i,j,s=100;
int* ar = (int*)malloc(s*sizeof(int));
for(i=0; i<n; i++){
s=0;
for(j=0; j<n; j+=2){
s+=j;
printf("%d\n", s);
}
free(ar);
}