Question: The Collantz conjecture concers what happens when we take any positive integer n and apply the following algorithm: n = n/2, if n is even

The Collantz conjecture concers what happens when we take any positive integer n and apply the following algorithm:

n = n/2, if n is even
3*n+1, if n is odd

The conjecture states that when this algorithm is continually apply all positive integers will eventyally reach 1. For example if n=35 the sequence is 35,106,53,160,80,40,20,10,5,16,8,4,2,1.

Write a C program using the fork() system call that generates this sequence in the child process. The starting number will be provided from the command line. For examle if 8 is passed as a parameter on the command line the child process will output 8,4,2,1. Because the parent and child process have their own copies of the data, it will be necessary for the child to output the sequence. Have the parent invoke the wait() call to wait for the child process to complete before exiting the program. Perform the necessary error checking to ensure that a positive integer is passed on the command line.

Messages like "Fork failed" and "Child complete" are necessary.

Error checking: no input at all, input<0, input=0, input that is not a number.

Atoi() function may be used to convert string to integer.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!