Advertisement
D_Pain

Collatz Program

Mar 1st, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.66 KB | None | 0 0
  1. /*Collatz*/
  2.  
  3. #include <stdio.h>
  4.  
  5. int main() {
  6.     int number, pid;
  7.  
  8.     printf("Insert number!");
  9.     scanf("%d", &number);
  10.  
  11.     if (number > 0) {
  12.         pid = fork();
  13.     }
  14.     else {
  15.         printf("Number should be larger than 0!");
  16.     }
  17.  
  18.     if (pid < 0) {
  19.         printf("Could not create a child process!");
  20.     }
  21.     else if (pid == 0) {
  22.         // Child process
  23.        
  24.         printf("%d ", number);
  25.         while (number != 1) {
  26.             if (number %2 == 0) {
  27.                 // Even number
  28.                 number /= 2;
  29.             }
  30.             else {
  31.                 // Odd number
  32.                 number = (3 * number) + 1;
  33.             }
  34.             printf("%d ", number);
  35.         }
  36.     }
  37.     else {
  38.         // Parent process
  39.  
  40.         printf("Process complete!");
  41.         wait(NULL);
  42.     }
  43.    
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement