Problem:
The series, 11 + 22 + 33 + ... + 1010 = 10405071317.
Find the last ten digits of the series, 11 + 22 + 33 + ... + 10001000.
Solution:
9110846700
Code:
The solution may include methods that will be found here: Library.java .
public interface EulerSolution{ public String run(); }
/* * Solution to Project Euler problem 48 * By Nayuki Minase * * http://nayuki.eigenstate.org/page/project-euler-solutions * https://github.com/nayuki/Project-Euler-solutions */ import java.math.BigInteger; public final class p048 implements EulerSolution { public static void main(String[] args) { System.out.println(new p048().run()); } public String run() { BigInteger modulus = BigInteger.TEN.pow(10); BigInteger sum = BigInteger.ZERO; for (int i = 1; i <= 1000; i++) sum = sum.add(BigInteger.valueOf(i).modPow(BigInteger.valueOf(i), modulus)); return sum.mod(modulus).toString(); } }
No comments :
Post a Comment