Seis números impares consecutivos a, a+2, a+4, a+6, a+8, a+10 son todos números compuestos. Encuentre la solución de fuerza bruta para el a más pequeño.
Publique los resultados primero, luego pegue el código:
1 consecutivo n=9, número de valores consecutivos: 1; tiempo que consume: 0 ms, total: 0 ms 2 veces consecutivas n=25, número de valores consecutivos: 1 que consume tiempo: 0 ms, total: 0 ms 3 veces consecutivas n=91; consecutivo Número de valores: 1; Consumo de tiempo: 0 ms, Total: 0 ms 4 veces consecutivas n=115, Número de valores consecutivos: 3 Consumo de tiempo: 0 ms, Total: 1 ms 5 n consecutivos = 115, número de valores consecutivos: 3; consumo de tiempo: 0 ms, total: 1 ms 6 veces consecutivas n = 115, número de valores consecutivos: 3 consumo de tiempo: 0 ms, total: 1 ms 7 consecutivos n = 525; continuo Número de valores: 2; Consumo de tiempo: 0 ms, Total: 1 ms 8 veces consecutivas n=525, Número de valores consecutivos: 2 Consumo de tiempo: 0 ms, Total: 1 ms 9 veces consecutivas n=889, número de valores consecutivos: 1; tiempo que consume: 0 ms, total: 1 ms 10 veces consecutivas n=1131, número de valores consecutivos: 1 que consume tiempo: 0 ms, total: 1 ms 11 veces consecutivas n=; 1329, continuo Número de valores: 6; Consumo de tiempo: 0 ms, Total: 1 ms 12 veces consecutivas n=1329, Número de valores consecutivos: 6 Consumo de tiempo: 0 ms; 1 ms 13 veces consecutivas n=1329, número de valores consecutivos: 6; consumo de tiempo: 0 ms, total: 1 ms 14 veces consecutivas n=1329, número de valores consecutivos: 6; consumo de tiempo: 0 ms, total: 1 ms 15 veces consecutivas n=; 1329, consecutivo Número de valores: 6; Consumo de tiempo: 0 ms, Total: 1 ms 16 veces consecutivas n=1329, Número de valores consecutivos: 6; 0 ms, total: 1 ms, 17 veces consecutivas n=9553, número de valores consecutivos: 1; tiempo que consume: 2 ms, total: 3 ms, 18 veces consecutivas n=15685, número de valores consecutivos: 4; 5 ms, 19 veces consecutivas n = 15685, número de valores consecutivos: 4 consumo de tiempo: 1 ms, total: 5 ms 20 veces consecutivas n = 15685, número de valores consecutivos: 4; Consumo de tiempo: 1 ms, total: 5 ms, 21 veces consecutivas n=15685, número de valores consecutivos: 4; Consumo de tiempo: 1 ms, total: 5 ms, 22 veces consecutivas n=19611, número de valores consecutivos: 4; : 2 ms, total: 8 ms 23 veces consecutivas n=19611, número de valores consecutivos: 4, consume mucho tiempo: 2 ms, total: 8ms24 veces consecutivas n=19611, número de valores consecutivos: 4; consumo de tiempo: 2ms, total: 8ms25 veces consecutivas n=19611, número de valores consecutivos: 4; consumo de tiempo: 2ms, número total: 8ms26 veces consecutivas n=31399; consecutivo Número de valores: 10; tiempo que consume: 5 ms, total: 13 ms, 27 veces consecutivas n=31399, número de valores consecutivos: 10; Consumo de tiempo: 5 ms, total: 13 ms, 28 veces consecutivas n=31399, número de valores consecutivos: 10; Consumo de tiempo: 5 ms, total: 13 ms, 29 veces consecutivas n=31399, número de valores consecutivos: 10; : 5 ms, total: 13 ms 30 veces consecutivas n=31399, número de valores consecutivos: 10 tiempo: 5 ms, total: 13ms31 veces consecutivas n=31399, número de valores consecutivos: 10 consumo de tiempo: 5ms, total: 13ms32 veces consecutivas n=31399, número de valores consecutivos: 10 consumo de tiempo: 5ms, número total: 13ms33 veces consecutivas n=31399; consecutivo Número de valores: 10; consumo de tiempo: 5 ms, total: 13ms34 veces consecutivas n=31399, número de valores consecutivos: 10 tiempo: 5ms, total: 13ms35 veces consecutivas n=31399, número de valores consecutivos: 10 tiempo: 5ms, total: 13ms36 veces consecutivas n=155923, consecutivos; Número de valores: 7; Tiempo necesario: 92 ms, Total: 105ms37 veces consecutivas n=155923, número de valores consecutivos: 7 que consumen tiempo: 92ms, total: 105ms38 veces consecutivas n=155923, número de valores consecutivos: 7 que consumen tiempo: 92ms, total: 105ms39 veces consecutivas n=155923, consecutivos; Número de valores: 7; Tiempo necesario: 92 ms, Total: 105ms40 veces consecutivas n=155923, número de valores consecutivos: 7 que consumen tiempo: 92ms, total: 105ms41 veces consecutivas n=155923, número de valores consecutivos: 7 que consumen tiempo: 92ms, total: 105ms42 veces consecutivas n=155923, consecutivos; Número de valores: 7; tiempo necesario: 93 ms, total: 106ms43 veces consecutivas n=360655, número de valores consecutivos: 5 consumo de tiempo: 243ms, total: 349ms44 veces consecutivas n=360655, número de valores consecutivos: 5 consumo de tiempo: 243ms, número total: 349ms45 veces consecutivas n=360655; continuo Número de valores: 5; consumo de tiempo: 243 ms, total: 349ms46 veces consecutivas n=360655, número de valores consecutivos: 5 consumo de tiempo: 243ms, total: 349ms47 veces consecutivas n=360655, número de valores consecutivos: 5 consumo de tiempo: 243ms, número total: 349ms48 veces consecutivas n=370263; continuo Número de valores: 8; Tiempo necesario: 14 ms, Total: 363ms49 veces consecutivas n=370263, número de valores consecutivos: 8 tiempo: 14ms, total: 363ms50 veces consecutivas n=370263, número de valores consecutivos: 8 tiempo: 14ms, total: 363ms51 veces consecutivas n=370263, continuo; Número de valores: 8; Tiempo necesario: 14 ms, Total: 363ms52 veces consecutivas n=370263, número de valores consecutivos: 8 que consume tiempo: 14ms, total: 363ms53 veces consecutivas n=370263, número de valores consecutivos: 8 que consume tiempo: 14ms, total: 363ms54 veces consecutivas n=370263, continuo; Número de valores: 8; Tiempo necesario: 14 ms, Total: 363ms55 veces consecutivas n=370263, número de valores consecutivos: 8 que consume tiempo: 14ms, total: 363ms56 veces consecutivas n=492115, número de valores consecutivos: 1 que consume tiempo: 185ms, total: 548ms57 veces consecutivas n=1349535, continuo; Número de valores: 2; consume mucho tiempo: 1854 ms, total: 2402ms58 veces consecutivas n=1349535, número de valores consecutivos: 2; consumo de tiempo: 1854ms, total: 2402ms59 veces consecutivas n=1357203, número de valores consecutivos: 7 consumo de tiempo: 22ms, número total: 2424ms60 veces consecutivas n=1357203; consecutivo Número de valores: 7; consumo de tiempo: 22 ms, total: 2424ms61 veces consecutivas n=1357203, número de valores consecutivos: 7 consumo de tiempo: 22ms, total: 2424ms62 veces consecutivas n=1357203, número de valores consecutivos: 7 consumo de tiempo: 22ms, número total: 2424ms63 veces consecutivas n=1357203; consecutivo Número de valores: 7; consumo de tiempo: 22 ms, total: 2424ms64 veces consecutivas n=1357203, número de valores consecutivos: 7 consumo de tiempo: 22ms, total: 2424ms65 veces consecutivas n=1357203, número de valores consecutivos: 7 consumo de tiempo: 22ms, número total: 2424ms66 veces consecutivas n=2010735; continuo Número de valores: 8; Tiempo necesario: 1889 ms, Total: 4313ms67 veces consecutivas n=2010735, número de valores consecutivos: 8 consumo de tiempo: 1889ms, total: 4313ms68 veces consecutivas n=2010735, número de valores consecutivos: 8 consumo de tiempo: 1889ms, número total: 4313ms69 veces consecutivas n=2010735; consecutivo Número de valores: 8; Tiempo necesario: 1889 ms, Total: 4313ms70 veces consecutivas n=2010735, número de valores consecutivos: 8; tiempo que consume: 1889ms, total: 4313ms71 veces consecutivas n=2010735, número de valores consecutivos: 8 que consume tiempo: 1889ms, total: 4313ms72 veces consecutivas n=2010735, consecutivos; Número de valores: 8; Tiempo necesario: 1889 ms, Total: 4313ms73 veces consecutivas n=2010735, número de valores consecutivos: 8 consumo de tiempo: 1890ms, total: 4314ms74 veces consecutivas n=4652355, número de valores consecutivos: 3 consumo de tiempo: 10583ms, número total: 14897ms75 veces consecutivas n=4652355; consecutivo Número de valores: 3; tiempo empleado: 10583ms, total: 14897ms76 veces consecutivas n=4652355, número de valores consecutivos: 3; consumo de tiempo: 10583ms, total: 14897ms77 veces consecutivas n=17051709, número de valores consecutivos: 13; 100979ms78 veces consecutivas n=17051709, número de valores consecutivos: 13 que consume tiempo: 86082ms, total: 100979ms79 veces consecutivas n=17051709, número de valores consecutivos: 13 que consume tiempo: 86082ms, total: 100979ms80 veces consecutivas n=17051709; , consecutivo Número de valores: 13; Consumo de tiempo: 86082 ms, total: 100979 ms 81 veces consecutivas n = 17051709, número de valores consecutivos: 13; Consumo de tiempo: 86082 ms, total: 100979 ms 82 veces consecutivas n = 17051709, número de valores consecutivos: 13; : 100979ms83 veces consecutivas n=17051709, número de valores consecutivos: 13 que consume tiempo: 86082ms, total: 100979ms84 veces consecutivas n=17051709, número de valores consecutivos: 13 que consume tiempo: 86082ms, total: 100979ms85 veces consecutivas n=17051709; , consecutivo Número de valores: 13; Consumo de tiempo: 86083 ms, total: 100980 ms 86 veces consecutivas n = 17051709, número de valores consecutivos: 13; Consumo de tiempo: 86083 ms, total: 100980 ms 87 veces consecutivas n = 17051709, número de valores consecutivos: 13; , total : 100980ms88 Times consecutivos n = 17051709, Número de valores consecutivos: 13; consecutivo Número de valores: 15; Consumo de tiempo: 34772 ms, total: 135752 ms 91 veces consecutivas n=20831325, número de valores consecutivos: 15; Consumo de tiempo: 34772 ms, total: 135752 ms 92 veces consecutivas n = 20831325, número de valores consecutivos: 15; : 135752Ms93 Times consecutivos n = 20831325, Número de valores consecutivos: 15; consecutivo Número de valores: 15; Consumo de tiempo: 34772 ms, total: 135752 ms 96 veces consecutivas n=20831325, número de valores consecutivos: 15; Consumo de tiempo: 34772 ms, total: 135752 ms 97 veces consecutivas n = 20831325, número de valores consecutivos: 15; : 135752ms98 veces consecutivas n=20831325, número de valores consecutivos: 15 consumo de tiempo: 34772ms, total: 135752ms99 veces consecutivas n=20831325, número de valores consecutivos: 15 consumo de tiempo: 34773ms, número total: 135753ms100 veces consecutivas n=20831325; , consecutivo Número de valores: 15; Consumo de tiempo: 34773 ms, total: 135753 ms 101 veces consecutivas n=20831325, número de valores consecutivos: 15; Consumo de tiempo: 34773 ms, total: 135753 ms 102 veces consecutivas n = 20831325, número de valores consecutivos: 15; : 135753ms103 veces consecutivas n=20831325, número de valores consecutivos: 15; consumo de tiempo: 34773ms, total: 135753ms104 veces consecutivas n=20831325, número de valores consecutivos: 15; 135753ms105 veces consecutivas n=47326695, número de valores consecutivos: 5; consumo de tiempo: 319130ms, total: 452155ms106 veces consecutivas n=47326695, número de valores consecutivos: 5; consumo de tiempo: 319131ms, total: 452156ms107 veces consecutivas n=47326695, número de valores consecutivos: 5; tiempo que consume: 319131ms, total: 452156ms108 veces consecutivas n=47326695, número de valores consecutivos: 5; tiempo que consume: 319131ms, total: 452156ms109 veces consecutivas n=47326695, número de valores consecutivos: 5; tiempo que consume: 319131ms, total: 452156ms110 veces consecutivas n=122164749, número de valores consecutivos: 1; 1847356ms111 veces consecutivas n=189695661, número de valores consecutivos: 6; tiempo que consume: 1705936ms, total: 3553292ms112 veces consecutivas n=189695661, número de valores consecutivos: 6; tiempo que consume: 1705936ms, total: 3553292ms113 veces consecutivas n=189695661, número de valores consecutivos: 6; tiempo que consume: 1705936ms, total: 3553292ms114 veces consecutivas n=189695661, número de valores consecutivos: 6; tiempo que consume: 1705936ms, total: 3553292ms115 veces consecutivas n=189695661, número de valores consecutivos: 6; tiempo que consume: 1705936ms, total: 3553292ms116 veces consecutivas n=189695661, número de valores consecutivos: 6; tiempo que consume: 1705936ms, total: 3553292ms117 veces consecutivas n=191912785, número de valores consecutivos: 7; tiempo que consume: 61964ms, total: 3615256ms118 veces consecutivas n=191912785, número de valores consecutivos: 7; tiempo que consume: 61964ms, total: 3615256ms119 veces consecutivas n=191912785, número de valores consecutivos: 7; consumo de tiempo: 61964ms, total: 3615256ms120 veces consecutivas n=191912785, número de valores consecutivos: 7; 3615256ms121 veces consecutivas n=191912785, número de valores consecutivos: 7; tiempo que consume: 61964ms, total: 3615256ms122 veces consecutivas n=191912785, número de valores consecutivos: 7; 3615256ms123 veces consecutivas n=191912785, número de valores consecutivos: 7; consumo de tiempo: 61964ms, total: 3615256ms124 veces consecutivas n=387096135, número de valores consecutivos: 1; consumo de tiempo: 6650201ms, número total: 10265457ms----- Esta ejecución se completó y el siguiente valor superó 1000 veces el tiempo inútil: 0 ms, total: xxxxxx135395 ms;
. . . . . . Los resultados posteriores aún no se han calculado.
El código se ve así:
paquete com.test.test.zhihe;importar java.util.ArrayList;importar java.util.HashMap;importar java.util.Iterator;importar java.util.List;importar java.util.Map;importar java.util.Set ;/** * Seis números impares consecutivos a, a+2, a+4, a+6, a+8, a+10 son todos números compuestos, encuentre el más pequeño a */clase pública ZhishuTest { /** * Determinar si un número es un número compuesto Comparado con números primos* @param num * @return */ public static boolean He(int num){ // Raíz cuadrada 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 } /** * Función principal* @param args */ public static void main(String[] args) { test(); test() { // Hora de inicio larga startMillis = System.currentTimeMillis(); // Última hora de finalización larga preMillis = System.currentTimeMillis() // Esta vez tiempo de finalización larga curMillis =; System.currentTimeMillis(); // int lianxu = 1000; int inicio = 1; int veces = 1; para (int x = 1; x <= lianxu; x++) { if(times > x){ continuar; pasado, ingrese el siguiente bucle} else { times = x } List<Map<Integer, Integer>> resList = testTimesHe(x, start, false); Si hay un número, procéselo if(null == resList || resList.isEmpty()){ // Si no se puede encontrar, no habrá el siguiente... // El anidamiento profundo es demasiado repugnante. . . break; } int size = resList.size(); // Recorrer Iterator<Map<Integer, Integer>> iteratorR = resList.iterator(); while (iteratorR.hasNext()) { Map<Integer, Integer> map = ( Mapa<Entero, Entero>) iteratorR.next(); // if(null != mapa && !map.isEmpty()){ // El recorrido del mapa es tan repugnante. Bad Java Set<Integer> llaves= map.keySet(); Iterator<Integer> iteratorK = llaves.iterator(); ); // Número de veces Valor entero = map.get(key); // Mínimo n // // Este tiempo de finalización curMillis = System.currentTimeMillis() // long allTimeout = curMillis - startMillis; long curTimeout = curMillis - preMillis; System.out.println(""+key+" veces consecutivas n="+value +", número de valores consecutivos: "+size + "; requiere mucho tiempo: " + curTimeout + " ms, total: "+allTimeout+"ms"); // Procesar datos, aquellos que se han procesado con avidez no se procesarán if(key > 0 && value > 0){ times = key+1; start = value; } } } } // Incluir la última hora de finalización preMillis = System.currentTimeMillis(); } // // Esta hora de finalización curMillis = System.currentTimeMillis(); // long allTimeout = curMillis - startMillis; out.println("Esta ejecución se completó, el siguiente valor excedió 100 veces" + "; Tiempo inútil: " + curTimeout + "ms, total: "+allTimeout+"ms"); } /** * * Los tiempos de prueba + 2 son el mínimo n de números compuestos * @param tiempos de cálculo * @param start número inicial * @param onlyStart solo calcula un único valor inicial. Se utiliza para La recursión. Las llamadas externas deben pasarse en * @return */ public static List<Map<Integer, Integer>> testTimesHe(int times,int start, boolean onlyStart) { // Lista<Mapa<Integer, Integer>> resList= new ArrayList<Map<Integer, Integer>>(); // // Programación defensiva if(start < 1){ return resList } if(0 == start % 2 ) { // No maneja números pares return resList } if(times < 1){ times = 1 } // int result = -1 // for (int i = start; i < Integer.MAX_VALUE; i+=2) { // // Evite el cálculo continuo sin devolver if(onlyStart && i > start){ // Si el inicio no se cumple, simplemente devuelva directamente resList } for (int j = 0; j < veces; j++) { int n = i + 2*j; // if(!He(n)){ break // Salida interna} // if(j+1 == times){ // Ejecutar hasta el resultado veces Satisface result = i; break;// No importa si te retiras o no, corremos hasta el final de for} } // if(result > 0){ // //System.out.println(" resultado = "+resultado); // Mapa<Entero, Entero> resMap = new HashMap<Entero, Entero>(); resMap.put(veces, resultado); resList.add(resMap); // Pruebe el siguiente número de veces, recursividad; de hecho, esta recursión se puede optimizar aún más con el algoritmo, solo agregue la próxima vez. . . // startTimes, agrega este parámetro directamente. . . ¿Recursión codiciosa? // Una vez más, comenzando desde el resultado numérico int t = times +1; int s = result; List<Map<Integer, Integer>> nextList = testTimesHe(t, s, true); is Los números del siguiente nivel se agregan al resultado actual if(null != nextList && false==nextList.isEmpty()){ resList.addAll(nextList } // break; // salida de la capa exterior } } // devolver lista res }}
Nota: todavía hay margen de mejora, bienvenido a hacer correcciones la próxima vez