Subato

Stream der Fakultäten

import java.util.stream.*;
import java.math.BigInteger;
class FacStream{
  static public Stream<TwoBig> facPairs(){
    return Stream
        .iterate(new TwoBig(BigInteger.ONE,BigInteger.ONE)
                ,is -> new TwoBig
                     (is.i1().multiply
                           (is.i2().add(BigInteger.ONE))
                     ,is.i2().add(BigInteger.ONE)));
  }
  static public Stream<BigInteger> facs(){
    return facPairs().map(x->x.i1());
  }
  static public BigInteger fac(int n){
    return facs().skip(n-1).findFirst().get();
  } 
}