import java.math.BigInteger ;
class Ideone
{
{
System .
out .
println ( "2 ** 83 == " + c2pow83
) ; System .
out .
println ( "2 ** 85 == " + c2pow85
) ; System .
out .
println ( "27 **" + c2pow83
+ " == " + c27.
modPow ( c2pow83, c2pow85
) + " mod " + c2pow85
) ;
BigInteger s
= java.
util .
stream .
LongStream .
range ( 1l, 1099511L
/*1099511627776L*/ ) // .parallel()
.
mapToObj ( i
-> c27.
modPow ( c3.
modPow ( BigInteger .
valueOf ( i
) ,c2pow83
) , c2pow85
) ) // .peek(elm -> {System.out.println(elm);})
.
reduce ( new BigInteger ( "0" ) ,
( sum, elm
) -> sum.
add ( elm
) .
mod ( c2pow85
) ) ; System .
out .
println ( "The result is " + s
) ; }
}
aW1wb3J0IGphdmEubWF0aC5CaWdJbnRlZ2VyOwoKY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCUJpZ0ludGVnZXIgYzIgPSBuZXcgQmlnSW50ZWdlcigiMiIpOwoJCUJpZ0ludGVnZXIgYzMgPSBuZXcgQmlnSW50ZWdlcigiMyIpOwoJCUJpZ0ludGVnZXIgYzJwb3c4NSA9IGMyLnBvdyg4NSk7CgkJQmlnSW50ZWdlciBjMnBvdzgzID0gYzIucG93KDgzKTsKCQlCaWdJbnRlZ2VyIGMyNyA9IG5ldyBCaWdJbnRlZ2VyKCIyNyIpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiMiAqKiA4MyA9PSAiICsgYzJwb3c4Myk7CgkJU3lzdGVtLm91dC5wcmludGxuKCIyICoqIDg1ID09ICIgKyBjMnBvdzg1KTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIjI3ICoqIiArIGMycG93ODMgKyAiID09ICIgKyBjMjcubW9kUG93KGMycG93ODMsIGMycG93ODUpICsgIiBtb2QgIisgYzJwb3c4NSk7CgoJCUJpZ0ludGVnZXIgcyA9IGphdmEudXRpbC5zdHJlYW0uTG9uZ1N0cmVhbS5yYW5nZSgxbCwgMTA5OTUxMUwgLyoxMDk5NTExNjI3Nzc2TCovKQoJCQkvLyAucGFyYWxsZWwoKQoJCQkubWFwVG9PYmooaSAtPiBjMjcubW9kUG93KGMzLm1vZFBvdyhCaWdJbnRlZ2VyLnZhbHVlT2YoaSksYzJwb3c4MyksIGMycG93ODUpKQoJCQkvLyAucGVlayhlbG0gLT4ge1N5c3RlbS5vdXQucHJpbnRsbihlbG0pO30pCgkJCS5yZWR1Y2UobmV3IEJpZ0ludGVnZXIoIjAiKSwgKHN1bSwgZWxtKSAtPiBzdW0uYWRkKGVsbSkubW9kKGMycG93ODUpKTsgCgkJU3lzdGVtLm91dC5wcmludGxuKCJUaGUgcmVzdWx0IGlzICIrcyk7Cgl9Cn0=