Problem:
Consider quadratic Diophantine equations of the form:
x2 – Dy2 = 1
For example, when D=13, the minimal solution in x is 6492 – 13[×]1802 = 1.
It can be assumed that there are no solutions in positive integers when D is square.
By finding minimal solutions in x for D = {2, 3, 5, 6, 7}, we obtain the following:
32 – 2[×]22 = 1
22 – 3[×]12 = 1
92 – 5[×]42 = 1
52 – 6[×]22 = 1
82 – 7[×]32 = 1
Hence, by considering minimal solutions in x for D [≤] 7, the largest x is obtained when D=5.
Find the value of D [≤] 1000 in minimal solutions of x for which the largest value of x is obtained.
x2 – Dy2 = 1
For example, when D=13, the minimal solution in x is 6492 – 13[×]1802 = 1.
It can be assumed that there are no solutions in positive integers when D is square.
By finding minimal solutions in x for D = {2, 3, 5, 6, 7}, we obtain the following:
32 – 2[×]22 = 1
22 – 3[×]12 = 1
92 – 5[×]42 = 1
52 – 6[×]22 = 1
82 – 7[×]32 = 1
Hence, by considering minimal solutions in x for D [≤] 7, the largest x is obtained when D=5.
Find the value of D [≤] 1000 in minimal solutions of x for which the largest value of x is obtained.
Solution:
1366
Code:
The solution may include methods that will be found here: Library.java .
public interface EulerSolution{
public String run();
}
/*
* Solution to Project Euler problem 16
* 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 p016 implements EulerSolution {
public static void main(String[] args) {
System.out.println(new p016().run());
}
public String run() {
String temp = BigInteger.ONE.shiftLeft(1000).toString();
int sum = 0;
for (int i = 0; i < temp.length(); i++)
sum += temp.charAt(i) - '0';
return Integer.toString(sum);
}
}
No comments :
Post a Comment