Topic links
Java programs
Packageprojecteuler51to60;ImportJava.math.BigInteger;ImportJava.util.Iterator;ImportJava.util.Set;ImportJava.util.TreeSet;classlevel56{voidsolve0 () {intMaxsum=0; for(inta=2;a<100;a++){ for(intb=2;b<100;b++) {BigInteger bignum=biginteger.valueof (a). Pow (b); Maxsum=Math.max (Digitsum (bignum), maxsum);//System.out.println (maxsum);}} System.out.println (Maxsum); } Private intDigitsum (BigInteger N) {intsum = 0; String s=n.tostring (); for(inti = 0; I < s.length (); i++) Sum+ = S.charat (i)-' 0 '; returnsum; } intsumdigits (BigInteger num) {intSum=0; BigInteger Ten= Biginteger.valueof (10); while(Num.equals (0) ) {sum+=(Num.mod (Ten)). Intvalue (); Num=Num.divide (Ten); } returnsum; } } Public classPROBLEM56 { Public Static voidMain (string[] args) {Longbegin=System.currenttimemillis (); Newlevel56 (). SOLVE0 (); LongEnd =System.currenttimemillis (); LongTime = end-begin; System.out.println ("Time:" +time/1000+ "S" +time%1000+ "MS"); }}
Because the above program writing time is a bit long, do not do too much analysis, only paste the program
Euler Project question 56th: powerful digit sum