Problem 35 auf projecteuler.net
Hier meine Lösung zu Problem 35. Für alle Primzahlen unter 1 Mio werden die jeweiligen Permutationen untersucht. Sind diese auch alles Primzahlen handelt es sich um eine kreisförmige Primzahl (Circular Prime Number).
Output mit Geschwindigkeit:
Result: 55
real 0m0.598s
user 0m0.717s
sys 0m0.020s
und dazu der Java-Code:
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 |
public final class Prob35 { private final static boolean isPrime(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 && n % i != 0; ++i) {} return (r == i - 1); } private final static boolean isCircular(int n) { String s = Integer.toString(n); for (int i = 0; i < s.length(); i++) if(!isPrime((Integer.parseInt(s.substring(i) + s.substring(0, i))))) return false; return true; } public static void main(String[] argv) { int cnt = 0; for(int i = 0; i < 1_000_000; i++) if(isPrime(i)) if(isCircular(i)) ++cnt; System.out.println("Result: "+cnt); } } |
Veröffentlicht am 19. Mai 2016 von admin in Java, Programmierung, projecteuler