fork download
  1. import java.math.BigInteger;
  2.  
  3. class Ideone
  4. {
  5. public static void main (String[] args) throws java.lang.Exception
  6. {
  7. BigInteger c2 = new BigInteger("2");
  8. BigInteger c3 = new BigInteger("3");
  9. BigInteger c2pow85 = c2.pow(85);
  10. BigInteger c2pow83 = c2.pow(83);
  11. BigInteger c27 = new BigInteger("27");
  12. System.out.println("2 ** 83 == " + c2pow83);
  13. System.out.println("2 ** 85 == " + c2pow85);
  14. System.out.println("27 **" + c2pow83 + " == " + c27.modPow(c2pow83, c2pow85) + " mod "+ c2pow85);
  15.  
  16. BigInteger s = java.util.stream.LongStream.range(1l, 1099511L /*1099511627776L*/)
  17. // .parallel()
  18. .mapToObj(i -> c27.modPow(c3.modPow(BigInteger.valueOf(i),c2pow83), c2pow85))
  19. // .peek(elm -> {System.out.println(elm);})
  20. .reduce(new BigInteger("0"), (sum, elm) -> sum.add(elm).mod(c2pow85));
  21. System.out.println("The result is "+s);
  22. }
  23. }
Success #stdin #stdout 10.9s 2184192KB
stdin
Standard input is empty
stdout
2 ** 83 == 9671406556917033397649408
2 ** 85 == 38685626227668133590597632
27 **9671406556917033397649408 == 1 mod 38685626227668133590597632
The result is 15109457778228693465150826