When i use 6 as my n, i get 0, which makes sense to me.;however, why do i get 6 for my final result? Why does it not do 0+5+...etc..?

Code://source.c file #include "Header.h" unsigned int sum_primes(unsigned int num) { //base case if (num == 4 || num == 3) { return 3; } if (num%2==0||num%3==0) { return 0; } else { return num+sum_primes(num - 1); } } //main #include "Header.h" int main() { printf("%d\n", sum_primes(6)); }