Sechs aufeinanderfolgende ungerade Zahlen a, a+2, a+4, a+6, a+8, a+10 sind allesamt zusammengesetzte Zahlen. Finden Sie die Brute-Force-Lösung für das kleinste a.
Veröffentlichen Sie zuerst die Ergebnisse und fügen Sie dann den Code ein:
1 aufeinanderfolgende n=9, Anzahl aufeinanderfolgender Werte: 1; zeitaufwendig: 0ms, gesamt: 2 aufeinanderfolgende Male n=25, Anzahl aufeinanderfolgender Werte: 1; 0ms, 3 aufeinanderfolgende Male n=91, fortlaufend Anzahl der Werte: 1; Zeitverbrauch: 0 ms, Gesamt: 4 aufeinanderfolgende Male n=115, Anzahl der aufeinanderfolgenden Werte: 3; 1ms 5 aufeinanderfolgende n=115, Anzahl aufeinanderfolgender Werte: 3; Zeitverbrauch: 0ms, gesamt: 1ms 6 aufeinanderfolgende Male n=115, Anzahl aufeinanderfolgender Werte: 0ms, gesamt: 1ms 7 aufeinanderfolgende n=525, kontinuierlich Anzahl der Werte: 2; Zeitverbrauch: 0 ms, Gesamt: 1 ms 8 aufeinanderfolgende Male n=525, Anzahl der aufeinanderfolgenden Werte: 2; 1 ms 9 Mal hintereinander n=889, Anzahl der aufeinanderfolgenden Werte: 1; Zeitaufwand: 0 ms, gesamt: 1 ms 10 Mal hintereinander n=1131, Anzahl der aufeinanderfolgenden Werte: 1 ms, Gesamtwert: 1 ms 11 Mal hintereinander n= 1329, kontinuierlich Anzahl der Werte: 6; Zeitverbrauch: 0 ms, Gesamt: 12 aufeinanderfolgende Male n=1329, Anzahl der aufeinanderfolgenden Werte: 6; 1ms 13 Mal hintereinander n=1329, Anzahl aufeinanderfolgender Werte: 6; Zeitverbrauch: 0ms 14mal aufeinanderfolgender n=1329, Anzahl aufeinanderfolgender Werte: 0ms, gesamt: 1ms 15mal aufeinanderfolgender n= 1329, fortlaufend Anzahl der Werte: 6; Zeitaufwendig: 0 ms, Gesamt: 1 ms16 aufeinanderfolgende Male n=1329, Anzahl aufeinanderfolgender Werte: 6; 0 ms, gesamt: 1 ms, 17 aufeinanderfolgende Male n=9553, Anzahl aufeinanderfolgender Werte: 1; zeitaufwendig: 2 ms, gesamt: 3 ms, 18 aufeinanderfolgende Male n=15685, Anzahl aufeinanderfolgender Werte: 1 ms, gesamt: 5 ms, 19 Mal hintereinander n = 15685, Anzahl aufeinanderfolgender Werte: 4; Zeitverbrauch: 1 ms, gesamt: 5 ms, 20 Mal hintereinander n = 15685, Anzahl aufeinanderfolgender Werte: 4; Zeitverbrauch: 1 ms, gesamt: 5 ms, 21 aufeinanderfolgende Werte: 4; Zeitverbrauch: 1 ms, gesamt: 5 ms, 22 aufeinanderfolgende Werte: 4; : 2ms, gesamt: 8ms23 aufeinanderfolgende Male n=19611, Anzahl aufeinanderfolgender Werte: 4; zeitaufwändig: 2ms, gesamt: 8ms24 aufeinanderfolgende Male n=19611, Anzahl aufeinanderfolgender Werte: 4; Zeitverbrauch: 2ms, gesamt: 8ms25 aufeinanderfolgende Male n=19611, Anzahl aufeinanderfolgender Werte: 2ms, Gesamtzahl: 8ms26 aufeinanderfolgende Male n=31399, fortlaufend Anzahl der Werte: 10; zeitaufwändig: 5 ms, gesamt: 13 ms, 27 aufeinanderfolgende Male n=31399, Anzahl aufeinanderfolgender Werte: 10; Zeitaufwand: 5 ms, gesamt: 13 ms, 28 aufeinanderfolgende Werte: 10; Zeitaufwand: 5 ms, gesamt: 13 ms, 29 aufeinanderfolgende Werte: 10; : 5ms, gesamt: 13ms30 aufeinanderfolgende Male n=31399, Anzahl aufeinanderfolgender Werte: 10; zeitaufwändig: 5ms, gesamt: 13ms31 Mal hintereinander n=31399, Anzahl der aufeinanderfolgenden Werte: 10; Zeitverbrauch: 5ms, gesamt: 13ms32 Mal hintereinander n=31399, Anzahl der aufeinanderfolgenden Werte: 10; Zeitverbrauch: 13ms33 Mal hintereinander n=31399, fortlaufend Anzahl Werte: 10; Zeitverbrauch: 5ms, gesamt: 13 ms, 34 Mal hintereinander, n = 31399, Anzahl der aufeinanderfolgenden Werte: 10, Zeitaufwand: 5 ms, 35 Mal, aufeinanderfolgende Werte, n = 31399, Zeitaufwand: 5 ms, 36 Mal, aufeinanderfolgende Werte, n = 155923 Anzahl der Werte: 7; benötigte Zeit: 92 ms, Gesamt: 105 ms, 37 Mal hintereinander, n=155923, Anzahl aufeinanderfolgender Werte: 7; Zeitaufwand: 92 ms, 38 Mal, aufeinanderfolgender Wert, n=155923, Zeitaufwand: 92 ms, 39 Mal aufeinanderfolgender Wert, n=155923, aufeinanderfolgende Anzahl der Werte: 7; benötigte Zeit: 92 ms, Gesamt: 105 ms, 40 Mal hintereinander, n=155923, Anzahl aufeinanderfolgender Werte: 7; Zeitaufwand: 92 ms, 41 Mal aufeinanderfolgender Wert, n=155923, Anzahl aufeinanderfolgender Werte: 92 ms, 42 Mal aufeinanderfolgender Wert, n=155923, aufeinanderfolgende Anzahl der Werte: 7; benötigte Zeit: 93ms, gesamt: 106 ms43 aufeinanderfolgende Male n=360655, Anzahl aufeinanderfolgender Werte: 5; Zeitverbrauch: 243 ms, gesamt: 349 ms44 aufeinanderfolgende Male n=360655, Anzahl aufeinanderfolgender Werte: 243 ms, Gesamtzahl: 349 ms45 aufeinanderfolgende Male n=360655, kontinuierlich Anzahl Werte: 5; Zeitverbrauch: 243ms, gesamt: 349ms46 aufeinanderfolgende Male n=360655, Anzahl aufeinanderfolgender Werte: 5; Zeitverbrauch: 243ms, gesamt: 349ms47 aufeinanderfolgende Male n=360655, Anzahl aufeinanderfolgender Werte: 5; Zeitverbrauch: 349ms48 mal aufeinanderfolgende n=370263, kontinuierlich Anzahl der Werte: 8; Dauer: 14ms, Gesamt: 363 ms, 49 Mal hintereinander, n = 370263, Zeitaufwand: 14 ms, gesamt: 363 ms, 50 Mal, n = 370263, Zeitaufwand: 14 ms, 51 Mal, kontinuierlich Anzahl der Werte: 8; benötigte Zeit: 14 ms, Gesamt: 363 ms52 aufeinanderfolgende Male n=370263, Anzahl aufeinanderfolgender Werte: 8; zeitaufwendig: 14 ms, gesamt: 363 ms53 aufeinanderfolgende Male n=370263, Anzahl aufeinanderfolgender Werte: 14 ms, gesamt: 363 ms54 aufeinanderfolgende Male n=370263, kontinuierlich Anzahl der Werte: 8; benötigte Zeit: 14 ms, Gesamt: 363 ms55 Mal hintereinander n=370263, Anzahl aufeinanderfolgender Werte: 8; Zeitaufwand: 14 ms, gesamt: 363 ms56 Mal aufeinanderfolgender Wert n=492115, Anzahl aufeinanderfolgender Werte: 185 ms, Gesamtwert: 548 ms57 Mal aufeinanderfolgender Wert n=1349535, kontinuierlich Anzahl der Werte: 2; Zeitaufwand: 1854 ms, gesamt: 2402ms58 aufeinanderfolgende Male n=1349535, Anzahl aufeinanderfolgender Werte: 2; Zeitverbrauch: 1854ms, gesamt: 2402ms59 aufeinanderfolgende Male n=1357203, Anzahl aufeinanderfolgender Werte: 22ms, Gesamtzahl: 2424ms60 mal aufeinanderfolgende n=1357203, fortlaufend Anzahl Werte: 7; Zeitverbrauch: 22ms, gesamt: 2424ms61 aufeinanderfolgende Male n=1357203, Anzahl aufeinanderfolgender Werte: 7; Zeitverbrauch: 22ms, gesamt: 2424ms62 aufeinanderfolgende Male n=1357203, Anzahl aufeinanderfolgender Werte: 22ms, Gesamtzahl: 2424ms63 aufeinanderfolgende Male n=1357203, fortlaufend Anzahl Werte: 7; Zeitverbrauch: 22ms, gesamt: 2424ms64 aufeinanderfolgende Male n=1357203, Anzahl aufeinanderfolgender Werte: 7; Zeitverbrauch: 22ms, gesamt: 2424ms65 aufeinanderfolgende Male n=1357203, Anzahl aufeinanderfolgender Werte: 22ms, Gesamtzahl: 2424ms66 aufeinanderfolgende Male n=2010735, kontinuierlich Anzahl der Werte: 8; Dauer: 1889 ms, Gesamt: 4313ms67 aufeinanderfolgende Male n=2010735, Anzahl aufeinanderfolgender Werte: 8; Zeitverbrauch: 1889ms, gesamt: 4313ms68 aufeinanderfolgende Male n=2010735, Anzahl aufeinanderfolgender Werte: 1889ms, Gesamtzahl: 4313ms69 mal aufeinanderfolgende n=2010735, fortlaufend Anzahl der Werte: 8; Dauer: 1889ms, Gesamt: 4313 ms70 aufeinanderfolgende Male n=2010735, Anzahl aufeinanderfolgender Werte: 8; zeitaufwendig: 1889 ms, gesamt: 4313 ms71 aufeinanderfolgende Male n=2010735, Anzahl aufeinanderfolgender Werte: 1889 ms72 aufeinanderfolgende Male n=2010735, aufeinanderfolgende Anzahl der Werte: 8; benötigte Zeit: 1889 ms, Gesamt: 4313ms73 aufeinanderfolgende Male n=2010735, Anzahl aufeinanderfolgender Werte: 8; Zeitverbrauch: 1890ms, gesamt: 4314ms74 aufeinanderfolgende Male n=4652355, Anzahl aufeinanderfolgender Werte: 3; Zeitverbrauch: 14897ms75 aufeinanderfolgende Male n=4652355, fortlaufend Anzahl der Werte: 3; benötigte Zeit: 10583 ms, gesamt: 14897 ms76 aufeinanderfolgende Male n=4652355, Anzahl aufeinanderfolgender Werte: 3; Zeitverbrauch: 10583 ms, gesamt: 14897 ms77 Mal aufeinanderfolgende n=17051709, Anzahl aufeinanderfolgender Werte: 13; 100979ms78 aufeinanderfolgende Male n=17051709, Anzahl aufeinanderfolgender Werte: 13; zeitaufwendig: 86082ms, gesamt: 100979ms79 aufeinanderfolgende Male n=17051709, Anzahl aufeinanderfolgender Werte: 13; zeitaufwändig: 86082ms80 aufeinanderfolgende Male n=17051709 , fortlaufend Anzahl Werte: 13; Zeitaufwand: 86082 ms, gesamt: 100979 ms, 81-mal aufeinanderfolgende Werte: 13; Zeitaufwand: 86082 ms, gesamt: 100979 ms, 82-mal aufeinanderfolgende Werte: 13; Zeitaufwand: 86082 ms, gesamt : 100979ms83 aufeinanderfolgende Male n=17051709, Anzahl aufeinanderfolgender Werte: 13; zeitaufwendig: 86082ms, gesamt: 100979ms84 aufeinanderfolgende Male n=17051709, Anzahl aufeinanderfolgender Werte: 13; zeitaufwändig: 86082ms, gesamt: 100979ms85 aufeinanderfolgende Male n=17051709 , fortlaufend Anzahl Werte: 13; Zeitaufwand: 86083 ms, gesamt: 100980 ms 86 aufeinanderfolgende Werte: 13; Zeitaufwand: 86083 ms, gesamt: 100980 ms 87 Mal aufeinanderfolgende Werte: 13; Zeitaufwand: 86083 ms , gesamt: 100980ms88 aufeinanderfolgende Zeiten N = 17051709, Anzahl der aufeinanderfolgenden Werte: 13; fortlaufend Anzahl Werte: 15; Zeitaufwand: 34772 ms, gesamt: 135752 ms, 91-mal aufeinanderfolgende Werte: 15; Zeitaufwand: 34772 ms, gesamt: 135752 ms, 92-mal aufeinanderfolgende Werte: 15; Zeitaufwand: 34772 ms, insgesamt : 135752ms93 aufeinanderfolgende Zeiten N = 20831325, Anzahl der aufeinanderfolgenden Werte: 15; fortlaufend Anzahl Werte: 15; Zeitaufwendig: 34772 ms, gesamt: 135752 ms, 96-mal aufeinanderfolgende Werte: 15; Zeitaufwendig: 34772 ms, gesamt: 135752 ms, 97-mal aufeinanderfolgende Werte: 15; Zeitaufwendig: 34772 ms, insgesamt : 135752ms98 aufeinanderfolgende Male n=20831325, Anzahl aufeinanderfolgender Werte: 15; Zeitverbrauch: 34772ms, gesamt: 135752ms99 mal aufeinanderfolgende n=20831325, Anzahl aufeinanderfolgender Werte: 15; Zeitverbrauch: 34773ms, Gesamtzahl: 135753ms100 mal aufeinanderfolgende n=20831325 , fortlaufend Anzahl Werte: 15; Zeitaufwendig: 34773 ms, gesamt: 135753 ms101 aufeinanderfolgende Male n=20831325, Anzahl aufeinanderfolgender Werte: 15; Zeitaufwendig: 34773 ms, gesamt: 135753 ms102 aufeinanderfolgende Male n=20831325; Zeitaufwendig: 34773 ms, insgesamt : 135753ms103 aufeinanderfolgende Male n=20831325, Anzahl aufeinanderfolgender Werte: 15; Zeitverbrauch: 34773ms, gesamt: 135753ms104 aufeinanderfolgende Male n=20831325, Anzahl aufeinanderfolgender Werte: 15; Zeitverbrauch: 34773ms, gesamt: 135753ms105 Mal aufeinanderfolgende n=47326695, Anzahl aufeinanderfolgender Werte: 5; Zeitverbrauch: 319130ms, gesamt: 452155ms106 Mal aufeinanderfolgende n=47326695, Anzahl aufeinanderfolgender Werte: 5; Zeitverbrauch: 319131ms, gesamt: 452156ms107 aufeinanderfolgende Male n=47326695, Anzahl aufeinanderfolgender Werte: 5; zeitaufwendig: 319131ms, gesamt: 452156ms108 aufeinanderfolgende Male n=47326695, Anzahl aufeinanderfolgender Werte: 5; zeitaufwändig: 319131ms, gesamt: 452156ms109 aufeinanderfolgende Male n=47326695, Anzahl aufeinanderfolgender Werte: 5; zeitaufwendig: 319131ms, gesamt: 452156ms110 mal aufeinanderfolgende n=122164749, Anzahl aufeinanderfolgender Werte: 1395200ms, gesamt: 1847356ms111 aufeinanderfolgende Male n=189695661, Anzahl aufeinanderfolgender Werte: 6; zeitaufwendig: 1705936ms, gesamt: 3553292ms112 mal aufeinanderfolgende n=189695661, Anzahl aufeinanderfolgender Werte: 6; zeitaufwändig: 1705936ms, gesamt: 3553292ms113 aufeinanderfolgende Male n=189695661, Anzahl aufeinanderfolgender Werte: 6; zeitaufwendig: 1705936ms, gesamt: 3553292ms114 aufeinanderfolgende Male n=189695661, Anzahl aufeinanderfolgender Werte: 6; zeitaufwändig: 1705936ms, gesamt: 3553292ms115 Mal hintereinander n=189695661, Anzahl aufeinanderfolgender Werte: 6; zeitaufwendig: 1705936ms, gesamt: 3553292ms116 mal aufeinanderfolgender n=189695661, Anzahl aufeinanderfolgender Werte: 6; zeitaufwendig: 1705936ms, gesamt: 3553292ms117 aufeinanderfolgende Male n=191912785, Anzahl aufeinanderfolgender Werte: 7; zeitaufwendig: 61964ms, gesamt: 3615256ms118 mal aufeinanderfolgende n=191912785, Anzahl aufeinanderfolgender Werte: 7; zeitaufwändig: 61964ms, gesamt: 3615256ms119 aufeinanderfolgende Male n=191912785, Anzahl aufeinanderfolgender Werte: 7; Zeitverbrauch: 61964ms, gesamt: 3615256ms120 mal aufeinanderfolgende n=191912785, Anzahl aufeinanderfolgender Werte: 7; Zeitverbrauch: 61964ms, gesamt: 3615256ms121 aufeinanderfolgende Male n=191912785, Anzahl aufeinanderfolgender Werte: 7; zeitaufwendig: 61964ms, gesamt: 3615256ms122 aufeinanderfolgende Male n=191912785, Anzahl aufeinanderfolgender Werte: 7; zeitaufwändig: 61964ms, gesamt: 3615256ms123 aufeinanderfolgende Male n=191912785, Anzahl aufeinanderfolgender Werte: 7; Zeitverbrauch: 61964ms, gesamt: 3615256ms124 mal aufeinanderfolgende n=387096135, Anzahl aufeinanderfolgender Werte: 1; Zeitverbrauch: 6650201ms, Gesamtzahl: 10265457ms----- Dieser Lauf wurde abgeschlossen und der nächste Wert hat 1000 Mal überschritten; nutzlose Zeit: 0 ms, Gesamt: xxxxxx135395 ms
. . . . . . Die weiteren Ergebnisse wurden noch nicht berechnet.
Der Code sieht so aus:
Paket com.test.test.zhihe;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set ;/** * Sechs aufeinanderfolgende ungerade Zahlen a, a+2, a+4, a+6, a+8, a+10 sind alle zusammengesetzte Zahlen, finden Sie die kleinste a */öffentliche Klasse ZhishuTest { /** * Bestimmen Sie, ob eine Zahl eine zusammengesetzte Zahl ist.* @param num * @return */ public static boolean He(int num){ // Quadratwurzel int sq = ((Double)Math. sqrt (num)).intValue(); // 2 ... sq for (int i = 2; i <= sq; i++) { int mo = num % i; if(0 == mo){ return true; } } // return false; } /** * Main function* @param args */ public static void main(String[] args) { test( ); test() { // Startzeit long startMillis = System.currentTimeMillis(); // Letzte Abschlusszeit long preMillis = System.currentTimeMillis( // Diesmal Abschlusszeit long curMillis = System.currentTimeMillis(); // int lianxu = 1000; int times = 1; for (int x = 1; x <= lianxu; x++) { continue; übergeben, in die nächste Schleife gehen} else { times = x; } List<Map<Integer, Integer>> resList = testTimesHe(x, start, false); Wenn es eine Zahl gibt, verarbeiten Sie sie. if(null == resList || resList.isEmpty()){ // Wenn sie nicht gefunden werden kann, wird es keine nächste geben... // Tiefe Verschachtelung ist zu ekelhaft. . . break; } int size = resList.size(); // Traverse Iterator<Map<Integer>> iteratorR = resList.iterator(); while (iteratorR.hasNext()) { Map<Integer, Integer> Map<Integer, Integer>) iteratorR.next(); // if(null != map && !map.isEmpty()){ // Map-Traversal ist so ekelhaft. ); // Anzahl der Male Integer value = map.get(key); // Minimum n // // Diese Abschlusszeit curMillis = System.currentTimeMillis(); - startMillis; long curTimeout = curMillis - preMillis; System.out.println(""+key+" aufeinanderfolgende Male n="+value +", Anzahl aufeinanderfolgender Werte: "+size + "; zeitaufwändig: " + curTimeout + " ms, total: "+allTimeout+"ms"); // Daten verarbeiten, diejenigen, die gierig verarbeitet wurden, werden nicht verarbeitet if(key > 0 && value > 0){ times = key+1; start = value; } } } } // Die letzte Abschlusszeit einschließen preMillis = System.currentTimeMillis(); // long allTimeout = curMillis - startMillis; long curTimeout = curMillis - preMillis; out.println("Dieser Lauf wurde abgeschlossen, der nächste Wert wurde 100 Mal überschritten" + "; Nutzlose Zeit: " + curTimeout + "ms, insgesamt: "+allTimeout+"ms"); } /** * * Testzeiten + 2 sind das Minimum n zusammengesetzter Zahlen * @param mal Berechnungszeiten * @param Start Startnummer * @param onlyStart berechnet nur einen einzelnen Startwert. Wird verwendet für Rekursion. Externe Aufrufe sollten in * @return */ public static List<Map<Integer, Integer>> testTimesHe(int times,int start, boolean onlyStart) { // übergeben werden. List<Map<Integer, Integer>> resList= new ArrayList<Map<Integer, Integer>>(); // // Defensive Programmierung if(start < 1){ return resList; { // Keine geraden Zahlen verarbeiten return resList } if(times < 1){ times = 1; // for (int i = start; i < Integer.MAX_VALUE; i+=2) { // // Kontinuierliche Berechnung ohne Rückgabe vermeiden if(onlyStart && i > start){ // Wenn start nicht erfüllt ist, geben Sie einfach direkt zurück resList; times; j++) { int n = i + 2*j; // if(!He(n)){ break; // Innerer Ausgang} // if(j+1 == times){ // Zum Ergebnis führen . Mal Es erfüllt result = i; break;// Es spielt keine Rolle, ob Sie sich zurückziehen oder nicht, wir laufen bis zum Ende von for} } // if(result > 0){ // //System.out.println(" result = "+result ); // Map<Integer, Integer> resMap = new HashMap<Integer, Integer>(); resMap.put(times, result); resList.add(resMap); // Versuchen Sie es noch einmal, Rekursion; Tatsächlich kann dieser gierige Algorithmus weiter optimiert werden, einfach beim nächsten Mal hinzufügen. . . // startTimes, diesen Parameter direkt hinzufügen. . . Gierige Rekursion? // Noch einmal, ausgehend von der Zahl result int t = times +1; int s = result; nextList = testTimesHe(t, s, true); is Die Zahlen der nächsten Ebene werden zum aktuellen Ergebnis addiert if(null != nextList && false==nextList.isEmpty()){ resList.addAll(nextList} } // break; // Exit der äußeren Ebene } } // return resList;
Hinweis: Es gibt noch Raum für Verbesserungen, gerne können beim nächsten Mal Korrekturen vorgenommen werden