Hier meine Lösung zu Problem 27 auf projecteuler.net in der Programmiersprache Java.
Bei der Lösung habe ich auf brute force gesetzt. Trotzdem berechnet sich das Ergebnis recht schnell:
Result: -59231
real 0m0.316s
user 0m0.325s
sys 0m0.008s
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
package net.mborm.euler.problems; public class Problem27 { private static boolean is_prime(int n) { if(n == 1) return false; if(n == 2) return true; int r = (int) Math.floor(Math.sqrt(n)); int i; for(i = 2; i <= r; ++i) if(n % i == 0) break; return (r == i - 1); } public static void main(String[] args) { int[] sequence = new int[2]; int result = 0; for(int a = -1000; a <= 1000; a++) { for(int b = -1000; b <= 1000; b++) { int n = 0; while(is_prime(Math.abs(n * n + a * n + b))) n++; if(n > result) { result = n; sequence[0] = a; sequence[1] = b; } } } System.out.println("Result: "+sequence[0] * sequence[1]); } } |