Six nombres impairs consécutifs a, a+2, a+4, a+6, a+8, a+10 sont tous des nombres composés Trouvez la solution par force brute pour le plus petit a.
Postez d'abord les résultats, puis collez le code :
1 consécutive n=9, nombre de valeurs consécutives : 1 ; durée : 0 ms, total : 0 ms 2 fois consécutives n=25, nombre de valeurs consécutives : 1 ; durée : 0 ms, total : 0 ms 3 fois consécutives n=91, consécutif Nombre de valeurs : 1 ; Durée : 0 ms, Total : 0 ms 4 fois consécutives n=115, Nombre de valeurs consécutives : 3 ; Durée : 0 ms, Total : 1 ms 5 consécutives n=115, nombre de valeurs consécutives : 3 ; consommation de temps : 0 ms, total : 1 ms 6 fois consécutives n=115, nombre de valeurs consécutives : 3 ; durée : 0 ms, total : 1 ms 7 consécutives n=525, continu Nombre de valeurs : 2 ; Temps : 0 ms, Total : 1 ms 8 fois consécutives n=525, Nombre de valeurs consécutives : 2 ; Temps : 0 ms, Total : 1 ms 9 fois consécutives n=889, nombre de valeurs consécutives : 1 ; temps : 0 ms, total : 1 ms 10 fois consécutives n=1131, nombre de valeurs consécutives : 1 ; temps : 0 ms, total : 1 ms 11 fois consécutives n= 1329, continu Nombre de valeurs : 6 ; Temps : 0 ms, Total : 1 ms12 fois consécutives n=1329, Nombre de valeurs consécutives : 6 ; Temps : 0 ms, Total : 1 ms 13 fois consécutives n=1329, nombre de valeurs consécutives : 6 ; consommation de temps : 0 ms, total : 1 ms 14 fois consécutives n=1329, nombre de valeurs consécutives : 6 ; consommation de temps : 0 ms, total : 1 ms 15 fois consécutives n= 1329, consécutifs Nombre de valeurs : 6 ; Temps : 0 ms, Total : 1 ms16 fois consécutives n=1329, Nombre de valeurs consécutives : 6 ; 0 ms, total : 1 ms, 17 fois consécutives n=9553, nombre de valeurs consécutives : 1 ; temps : 2 ms, total : 3 ms, 18 fois consécutives n=15685, nombre de valeurs consécutives : 4 ; 5 ms, 19 fois consécutives n = 15 685, nombre de valeurs consécutives : 4 ; consommation de temps : 1 ms, total : 5 ms 20 fois consécutives n = 15 685, nombre de valeurs consécutives : 4 ; Prend du temps : 1 ms, total : 5 ms, 21 fois consécutives n=15 685, nombre de valeurs consécutives : 4 ; Prend du temps : 1 ms, total : 5 ms, 22 fois consécutives n=19 611, nombre de valeurs consécutives : 4 ; : 2 ms, total : 8 ms23 fois consécutives n=19611, nombre de valeurs consécutives : 4 ; durée : 2 ms, total : 8 ms24 fois consécutives n=19611, nombre de valeurs consécutives : 4 ; consommation de temps : 2 ms, total : 8 ms25 fois consécutives n=19611, nombre de valeurs consécutives : 4 ; consommation de temps : 2 ms, nombre total : 8 ms26 fois consécutives n=31399, consécutif Nombre de valeurs : 10 ; prend du temps : 5 ms, total : 13 ms, 27 fois consécutives n=31399, nombre de valeurs consécutives : 10 ; Prend du temps : 5 ms, total : 13 ms, 28 fois consécutives n=31 399, nombre de valeurs consécutives : 10 ; Prend du temps : 5 ms, total : 13 ms, 29 fois consécutives n=31 399, nombre de valeurs consécutives : 10 ; : 5 ms, total : 13 ms30 fois consécutives n=31399, nombre de valeurs consécutives : 10 ; durée : 5 ms, total : 13 ms31 fois consécutives n=31399, nombre de valeurs consécutives : 10 ; consommation de temps : 5 ms, total : 13 ms32 fois consécutives n=31399, nombre de valeurs consécutives : 10 ; consommation de temps : 5 ms, nombre total : 13 ms33 fois consécutives n=31399, consécutif Nombre de valeurs : 10 ; consommation de temps : 5 ms, total : 13 ms34 fois consécutives n=31399, nombre de valeurs consécutives : 10 ; temps : 5 ms, total : 13 ms35 fois consécutives n=31399, nombre de valeurs consécutives : 10 ; temps : 5 ms, total : 13 ms36 fois consécutives n=155923, consécutifs Nombre de valeurs : 7 ; Temps pris : 92 ms, Total : 105 ms37 fois consécutives n=155923, nombre de valeurs consécutives : 7 ; temps : 92 ms, total : 105 ms38 fois consécutives n=155923, nombre de valeurs consécutives : 7 ; temps : 92 ms, total : 105 ms39 fois consécutives n=155923, consécutifs Nombre de valeurs : 7 ; Temps pris : 92 ms, Total : 105 ms40 fois consécutives n=155923, nombre de valeurs consécutives : 7 ; temps : 92 ms, total : 105 ms41 fois consécutives n=155923, nombre de valeurs consécutives : 7 ; temps : 92 ms, total : 105 ms42 fois consécutives n=155923, consécutifs Nombre de valeurs : 7 ; temps pris : 93 ms, total : 106 ms43 fois consécutives n=360655, nombre de valeurs consécutives : 5 ; consommation de temps : 243 ms, total : 349 ms44 fois consécutives n=360655, nombre de valeurs consécutives : 5 ; consommation de temps : 243 ms, nombre total : 349 ms45 fois consécutives n=360655, continu Nombre de valeurs : 5 ; consommation de temps : 243 ms, total : 349 ms46 fois consécutives n=360655, nombre de valeurs consécutives : 5 ; consommation de temps : 243 ms, total : 349 ms47 fois consécutives n=360655, nombre de valeurs consécutives : 5 ; consommation de temps : 243 ms, nombre total : 349 ms48 fois consécutives n=370263, continu Nombre de valeurs : 8 ; Temps pris : 14 ms, Total : 363 ms49 fois consécutives n=370263, nombre de valeurs consécutives : 8 ; temps : 14 ms, total : 363 ms50 fois consécutives n=370263, nombre de valeurs consécutives : 8 ; temps : 14 ms, total : 363 ms51 fois consécutives n=370263, continu. Nombre de valeurs : 8 ; Temps pris : 14 ms, Total : 363 ms52 fois consécutives n=370263, nombre de valeurs consécutives : 8 ; temps : 14 ms, total : 363 ms53 fois consécutives n=370263, nombre de valeurs consécutives : 8 ; temps : 14 ms, total : 363 ms54 fois consécutives n=370263, continu Nombre de valeurs : 8 ; Temps pris : 14 ms, Total : 363 ms55 fois consécutives n=370263, nombre de valeurs consécutives : 8 ; temps : 14 ms, total : 363 ms56 fois consécutives n=492115, nombre de valeurs consécutives : 1 ; temps : 185 ms, total : 548 ms57 fois consécutives n=1349535, continu Nombre de valeurs : 2 ; durée : 1 854 ms, total : 2402 ms58 fois consécutives n=1349535, nombre de valeurs consécutives : 2 ; consommation de temps : 1854 ms, total : 2402 ms59 fois consécutives n=1357203, nombre de valeurs consécutives : 7 ; consommation de temps : 22 ms, nombre total : 2424 ms60 fois consécutives n=1357203, consécutif Nombre de valeurs : 7 ; consommation de temps : 22 ms, total : 2424 ms61 fois consécutives n=1357203, nombre de valeurs consécutives : 7 ; consommation de temps : 22 ms, total : 2424 ms62 fois consécutives n=1357203, nombre de valeurs consécutives : 7 ; consommation de temps : 22 ms, nombre total : 2424 ms63 fois consécutives n=1357203, consécutif Nombre de valeurs : 7 ; consommation de temps : 22 ms, total : 2424 ms64 fois consécutives n=1357203, nombre de valeurs consécutives : 7 ; consommation de temps : 22 ms, total : 2424 ms65 fois consécutives n=1357203, nombre de valeurs consécutives : 7 ; consommation de temps : 22 ms, nombre total : 2424 ms66 fois consécutives n=2010735, continu Nombre de valeurs : 8 ; Temps pris : 1889 ms, Total : 4313 ms67 fois consécutives n=2010735, nombre de valeurs consécutives : 8 ; consommation de temps : 1889 ms, total : 4313 ms68 fois consécutives n=2010735, nombre de valeurs consécutives : 8 ; consommation de temps : 1889 ms, nombre total : 4313 ms69 fois consécutives n=2010735, consécutif Nombre de valeurs : 8 ; Temps pris : 1889 ms, Total : 4 313 ms70 fois consécutives n=2 010 735, nombre de valeurs consécutives : 8 ; temps : 1 889 ms, total : 4 313 ms71 fois consécutives n=2 010 735, nombre de valeurs consécutives : 8 ; temps : 1 889 ms, total : 4 313 ms72 fois consécutives n=2 010 735, consécutifs Nombre de valeurs : 8 ; Temps pris : 1889 ms, Total : 4313 ms73 fois consécutives n=2010735, nombre de valeurs consécutives : 8 ; consommation de temps : 1890 ms, total : 4314 ms74 fois consécutives n=4652355, nombre de valeurs consécutives : 3 ; consommation de temps : 10583 ms, nombre total : 14897 ms75 fois consécutives n=4652355, consécutif Nombre de valeurs : 3 ; Temps pris : 10 583 ms, total : 14 897 ms76 fois consécutives n=4652355, nombre de valeurs consécutives : 3 ; consommation de temps : 10 583 ms, total : 14 897 ms77 fois consécutives n=1 7051 709, nombre de valeurs consécutives : 13 ; 100979 ms78 fois consécutives n=17051709, nombre de valeurs consécutives : 13 ; temps : 86082 ms, total : 100979 ms79 fois consécutives n=17051709, nombre de valeurs consécutives : 13 ; temps : 86082 ms, total : 100979 ms80 fois consécutives n=17051709, consécutifs Nombre de valeurs : 13 ; Prend du temps : 86 082 ms, total : 100 979 ms81 fois consécutives n=1 7051 709, nombre de valeurs consécutives : 13 ; Prend du temps : 86 082 ms, total : 100 979 ms82 fois consécutives n=1 7051709, nombre de valeurs consécutives : 13 ; : 100979 ms83 fois consécutives n=17051709, nombre de valeurs consécutives : 13 ; temps : 86082 ms, total : 100979 ms84 fois consécutives n=17051709, nombre de valeurs consécutives : 13 ; temps : 86082 ms, total : 100979 ms85 fois consécutives n=17051709, consécutifs Nombre de valeurs : 13 ; Temps : 86 083 ms, total : 100 980 ms 86 fois consécutives n = 1 705 1 709, nombre de valeurs consécutives : 13 ; , total : 100980 ms88 fois consécutives n=17051709, nombre de valeurs consécutives : 13 ; consommation de temps : 86083 ms, total : 100980 ms89 fois consécutives n=17051709, nombre de valeurs consécutives : 13 ; consommation de temps : 86083 ms, nombre total : 100980 ms90 fois consécutives n=20831325, consécutif Nombre de valeurs : 15 ; Temps : 34 772 ms, total : 135 752 ms91 fois consécutives n=20831325, nombre de valeurs consécutives : 15 ; Temps : 34 772 ms, total : 135 752 ms92 fois consécutives n=20831325, nombre de valeurs consécutives : 15 ; : 135752 ms93 fois consécutives n=20831325, nombre de valeurs consécutives : 15 ; consommation de temps : 34772 ms, total : 135752 ms94 fois consécutives n=20831325, nombre de valeurs consécutives : 15 ; consommation de temps : 34772 ms, nombre total : 135752 ms95 fois consécutives n=20831325, consécutif Nombre de valeurs : 15 ; Temps : 34 772 ms, total : 135 752 ms96 fois consécutives n=20831325, nombre de valeurs consécutives : 15 ; Temps : 34 772 ms, total : 135 752 ms97 fois consécutives n=20831325, nombre de valeurs consécutives : 15 ; : 135752 ms98 fois consécutives n=20831325, nombre de valeurs consécutives : 15 ; consommation de temps : 34772 ms, total : 135752 ms99 fois consécutives n=20831325, nombre de valeurs consécutives : 15 ; consommation de temps : 34773 ms, nombre total : 135753 ms100 fois consécutives n=20831325, consécutif Nombre de valeurs : 15 ; Temps : 34 773 ms, total : 135 753 ms101 fois consécutives n=20831325, nombre de valeurs consécutives : 15 ; Temps : 34 773 ms, total : 135 753 ms102 fois consécutives n=20831325, nombre de valeurs consécutives : 15 ; : 135753 ms103 fois consécutives n=20831325, nombre de valeurs consécutives : 15 ; consommation de temps : 34773 ms, total : 135753 ms104 fois consécutives n=20831325, nombre de valeurs consécutives : 15 ; 135753 ms105 fois consécutives n=47326695, nombre de valeurs consécutives : 5 ; consommation de temps : 319130 ms, total : 452155 ms106 fois consécutives n=47326695, nombre de valeurs consécutives : 5 ; 452 156 ms107 fois consécutives n=47326695, nombre de valeurs consécutives : 5 ; temps : 319131 ms, total : 452156 ms108 fois consécutives n=47326695, nombre de valeurs consécutives : 5 ; 452156 ms109 fois consécutives n=47326695, nombre de valeurs consécutives : 5 ; temps : 319131 ms, total : 452156 ms110 fois consécutives n=122164749, nombre de valeurs consécutives : 1 ; 1847356 ms111 fois consécutives n=189695661, nombre de valeurs consécutives : 6 ; temps : 1705936 ms, total : 3553292 ms112 fois consécutives n=189695661, nombre de valeurs consécutives : 6 ; 3553292 ms113 fois consécutives n=189695661, nombre de valeurs consécutives : 6 ; temps : 1705936 ms, total : 3553292 ms114 fois consécutives n=189695661, nombre de valeurs consécutives : 6 ; 3553292 ms115 fois consécutives n=189695661, nombre de valeurs consécutives : 6 ; prend du temps : 1705936 ms, total : 3553292 ms116 fois consécutives n=189695661, nombre de valeurs consécutives : 6 ; 3553292 ms117 fois consécutives n=191912785, nombre de valeurs consécutives : 7 ; temps : 61964 ms, total : 3615256 ms118 fois consécutives n=191912785, nombre de valeurs consécutives : 7 ; 3615256 ms119 fois consécutives n=191912785, nombre de valeurs consécutives : 7 ; consommation de temps : 61964 ms, total : 3615256 ms120 fois consécutives n=191912785, nombre de valeurs consécutives : 7 ; 3615256 ms121 fois consécutives n=191912785, nombre de valeurs consécutives : 7 ; temps : 61964 ms, total : 3615256 ms122 fois consécutives n=191912785, nombre de valeurs consécutives : 7 ; 3615256 ms123 fois consécutives n=191912785, nombre de valeurs consécutives : 7 ; consommation de temps : 61964 ms, total : 3615256 ms124 fois consécutives n=387096135, nombre de valeurs consécutives : 1 ; consommation de temps : 6650201 ms, nombre total : 10265457 ms----- Cette exécution est terminée et la valeur suivante a dépassé 1 000 fois ; temps inutile : 0 ms, total : xxxxxx135395 ms.
. . . . . . Les résultats ultérieurs n'ont pas encore été calculés.
Le code ressemble à ceci :
package com.test.test.zhihe; importer java.util.ArrayList; importer java.util.HashMap; importer java.util.Iterator; importer java.util.List; importer java.util.Map; importer java.util.Set ;/** * Six nombres impairs consécutifs a, a+2, a+4, a+6, a+8, a+10 sont tous des nombres composés, trouvez le plus petit a */classe publique ZhishuTest { /** * Déterminer si un nombre est un nombre composé. Par rapport aux nombres premiers* @param num * @return */ public static boolean He(int num){ // Racine carrée int sq = ((Double)Math. sqrt (num)).intValue(); // 2 ... sq pour (int i = 2; i <= sq; i++) { int mo = num % i; if(0 == mo){ return true; } } // return false; } /** * Fonction principale* @param args */ public static void main(String[] args) { test( } public static void test() { // Heure de début long startMillis = System.currentTimeMillis(); // Dernière heure d'achèvement long preMillis = System.currentTimeMillis( // Cette heure d'achèvement long curMillis = System.currentTimeMillis(); // int lianxu = 1000; int start = 1; int times = 1; for (int x = 1; x <= lianxu; x++) { if(times > x){ continuer; passé, entrez la boucle suivante} else { times = x; } List<Map<Integer, Integer>> resList = testTimesHe(x, start, false); S'il y a un nombre, traitez-le if(null == resList || resList.isEmpty()){ // S'il est introuvable, il n'y aura pas de suivant... // L'imbrication profonde est trop dégoûtante. . . break; } int size = resList.size(); // Traverse Iterator<Map<Integer, Integer>> iteratorR = resList.iterator(); while (iteratorR.hasNext()) { Map<Integer, Integer> map = ( Map<Integer, Integer>) iteratorR.next(); // if(null != map && !map.isEmpty()){ // La traversée de la carte est tellement dégoûtante. Bad Java Set<Integer> keys= map.keySet(); Iterator<Integer> iteratorK = keys.iterator(); if(iteratorK.hasNext()){ Integer key = iteratorK.next( ); // Nombre de fois Integer value = map.get(key); // Minimum n // // Ce temps d'achèvement curMillis = System.currentTimeMillis(); - startMillis; long curTimeout = curMillis - preMillis; System.out.println(""+key+" consécutif times n="+value +", nombre de valeurs consécutives : "+size + "; prend du temps : " + curTimeout + " ms, total : "+allTimeout+"ms"); // Traiter les données, celles qui ont été traitées avec gourmandise ne seront pas traitées if(key > 0 && value > 0){ times = key+1; start = value; } } } } // Inclut la dernière heure d'achèvement preMillis = System.currentTimeMillis(); } // // Cette heure d'achèvement curMillis = System.currentTimeMillis(); // long allTimeout = curMillis - startMillis; long curTimeout = curMillis - preMillis; out.println("Cette exécution est terminée, la valeur suivante a dépassé 100 fois" + "; Temps inutile : " + curTimeout + "ms, total : "+allTimeout+"ms"); } /** * * Les temps de test + 2 sont le n minimum de nombres composés * @param fois les temps de calcul * @param start numéro de départ * @param onlyStart ne calcule qu'une seule valeur de départ. Utilisé pour récursion. Les appels externes doivent être passés dans * @return */ public static List<Map<Integer, Integer>> testTimesHe(int times,int start, boolean onlyStart) { // List<Map<Integer, Integer>> resList= new ArrayList<Map<Integer, Integer>>(); // // Programmation défensive if(start < 1){ return resList } if(0 == start % 2 ) { // Ne gère pas les nombres pairs return resList; } if(times < 1){ times = 1; } // int result = -1; Integer.MAX_VALUE; i+=2) { // // Évitez les calculs continus sans renvoyer if(onlyStart && i > start){ // Si start n'est pas satisfait, retournez simplement directement resList; } for (int j = 0; j < times; j++) { int n = i + 2*j; // if(!He(n)){ break; // Sortie interne} // if(j+1 == times){ // Exécuter le résultat . Cela satisfait result = i; break;// Peu importe que vous reculiez ou non, nous courons jusqu'à la fin de for} } // if(result > 0){ // //System.out.println(" result = "+result ); // Map<Integer, Integer> resMap = new HashMap<Integer, Integer>(); resMap.put(times, result); resList.add(resMap); // Essayez le nombre de fois suivant, récursion; En fait, cette récursion peut être encore optimisée, ajoutez simplement la prochaine fois. . . // startTimes, ajoutez ce paramètre directement. . . Récursivité gourmande ? // Encore une fois, à partir du nombre result int t = times +1; list<Map<Integer, Integer>> nextList = testTimesHe(t, s, true); is Les numéros du niveau suivant sont ajoutés au résultat actuel if(null != nextList && false==nextList.isEmpty()){ resList.addAll(nextList } // break; // Sortie de la couche externe } } // return resList }}
Remarque : Il y a encore place à l'amélioration, n'hésitez pas à apporter des corrections la prochaine fois.