Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Prodentim Probiotics Specially Designed For The Health Of Your Teeth And Gums

Instant Grammar Checker - Correct all grammar errors and enhance your writing

Teach Your Child To Read

Powerful WordPress hosting for WordPress professionals

Disclosure: My content contains affiliate links.

31,038 questions

40,849 answers

573 users

How to calculate the Collatz sequence for a range starting from 3 to 10 in C

Learn & Practice SQL


42 views
asked Nov 6, 2023 by avibootz
edited Nov 6, 2023 by avibootz

1 Answer

0 votes
#include <stdio.h>
  
// Collatz Sequence Example:
// 13 - 40 - 20 - 10 - 5 - 16 - 8 - 4 - 2 - 1
  
long long CalcCollatz(long long x) {
    // if (number is odd) return x*3 + 1
    // if (number is even) return x/2 
    if (x & 1) { // odd
        return x * 3 + 1;
    }
    return x / 2; // even
}

void PrintCollatzSequence(long long x) {
    printf("%3ld", x);
      
    while (x != 1) {
        x = CalcCollatz(x);
        printf("%3ld", x);
    }  
}
  
int main() {
    for (long long i = 3; i < 11; i++) {
        PrintCollatzSequence(i);
        printf("\n");
    }
       
    return 0;
}
   
   
   
   
/*
run:
    
3 10  5 16  8  4  2  1
4  2  1
5 16  8  4  2  1
6  3 10  5 16  8  4  2  1
7 22 11 34 17 52 26 13 40 20 10  5 16  8  4  2  1
8  4  2  1
9 28 14  7 22 11 34 17 52 26 13 40 20 10  5 16  8  4  2  1
10  5 16  8  4  2  1
 
*/

 





answered Nov 6, 2023 by avibootz
edited Nov 7, 2023 by avibootz
...