# Collatz

public struct Collatz : IteratorProtocol, Sequence

An Iterator for the Collatz conjecture

The Collatz conjecture is a conjecture in mathematics that concerns a sequence defined as follows: start with any positive integer n. Then each term is obtained from the previous term as follows: if the previous term is even, the next term is one half the previous term. If the previous term is odd, the next term is 3 times the previous term plus 1. The conjecture is that no matter what value of n, the sequence will always reach 1.

After it reaches 1, the iterator will return nil

•  init(_:) 

Initialize the collatz sequence

#### Declaration

Swift

public init(_ n: BigInt)

#### Parameters

  n  Any BigInt
•  next() 

Next value

#### Declaration

Swift

mutating public mutating func next() -> BigInt?
•  makeIterator() 

Makes Collatz conforming to the Sequence protocol

#### Declaration

Swift

public func makeIterator() -> Collatz