Шесть последовательных нечетных чисел a, a+2, a+4, a+6, a+8, a+10 являются составными числами. Найдите решение методом перебора для наименьшего числа a.
Сначала опубликуйте результаты, затем вставьте код:
1 подряд n=9, количество последовательных значений: 1; время: 0 мс, всего: 0 мс 2 раза подряд n=25, количество последовательных значений: 1; время: 0 мс 3 раза подряд n=91, последовательные Количество значений: 1; Затраты времени: 0 мс, Всего: 0 мс 4 раза подряд n=115, Количество последовательных значений: 3 Затраты времени: 0 мс, Всего: 1 мс 5 последовательных значений: 3; затраты времени: 0 мс, всего: 1 мс 6 раз подряд n = 115, количество последовательных значений: 3; затраты времени: 0 мс, всего: 1 мс 7 последовательных значений n = 525, непрерывно Количество значений: 2; Затраты времени: 0 мс, Всего: 1 мс 8 раз подряд n=525, Количество последовательных значений: 2 Затраты времени: 0 мс, Всего: 1 мс 9 раз подряд n=889, количество последовательных значений: 1; время: 0 мс, всего: 1 мс 10 раз подряд n=1131, количество последовательных значений: 1; время: 1 мс 11 раз подряд n= 1329, непрерывно Количество значений: 6; Затраты времени: 0 мс, Всего: 1 мс12 раз подряд n=1329, Количество последовательных значений: 6; Затраты времени: 0 мс, Всего: 1 мс 13 раз подряд n=1329, количество последовательных значений: 6; время: 0 мс, всего: 1 мс 14 раз подряд n=1329, количество последовательных значений: 6; всего: 1 мс 15 раз подряд n= 1329, последовательных Количество значений: 6; Затраты времени: 0 мс, Всего: 1 мс16 раз подряд n=1329, Количество последовательных значений: 6; 0 мс, всего: 1 мс, 17 последовательных значений n=9553, количество последовательных значений: 1; затраты времени: 2 мс, всего: 3 мс, 18 последовательных раз n=15685, количество последовательных значений: 4; затраты времени: 1 мс, всего: 5 мс, 19 раз подряд n = 15685, количество последовательных значений: 4; затраты времени: 1 мс, всего: 5 мс 20 раз подряд n = 15 685, количество последовательных значений: 4 Затраты времени: 1 мс, всего: 5 мс, 21 последовательный раз n=15685, количество последовательных значений: 4; Затраты времени: 1 мс, всего: 5 мс, 22 последовательных раза n=19611, количество последовательных значений: 4; : 2 мс, всего: 8 мс23 последовательных раза, n=19611, количество последовательных значений: 4, время: 2 мс, всего: 8 мс24 последовательных раза n=19611, количество последовательных значений: 4; затраты времени: 2 мс, всего: 8 мс25 последовательных раз n=19611, количество последовательных значений: 4; общее количество: 8 мс26 последовательных раз n=31399, последовательные Количество значений: 10; время: 5 мс, всего: 13 мс, 27 раз подряд n=31399, количество последовательных значений: 10 Затраты времени: 5 мс, всего: 13 мс, 28 раз подряд n=31399, количество последовательных значений: 10 Затраты времени: 5 мс, всего: 13 мс, 29 раз подряд n=31399, количество последовательных значений: 10; : 5 мс, всего: 13 мс30 последовательных раз, n=31399, количество последовательных значений: 10, время затрат: 5 мс, всего: 13 мс31 раз подряд, n=31399, количество последовательных значений: 10; затраты времени: 5 мс, всего: 13 мс32 раза подряд, n=31399, количество последовательных значений: 10; затраты времени: 5 мс, общее количество: 13 мс33 раза подряд, n=31399, последовательное Количество значений: 10; потребление времени: 5 мс, всего: 13 мс34 последовательных значений, n=31399, количество последовательных значений: 10; время: 5 мс, всего: 13 мс35 раз подряд, n=31399, количество последовательных значений: 10; время: 5 мс, всего: 13 мс36 раз подряд, n=155923, подряд Количество значений: 7; Затраченное время: 92 мс, Всего: 105 мс37 раз подряд n=155923, количество последовательных значений: 7; время: 92 мс, всего: 105 мс38 последовательных раз n=155923, количество последовательных значений: 7; время: 92 мс, всего: 105 мс39 раз подряд n=155923, подряд Количество значений: 7; Затраченное время: 92 мс, Всего: 105 мс40 раз подряд, n=155923, количество последовательных значений: 7; время: 92 мс, всего: 105 мс41 раз подряд, n=155923, количество последовательных значений: 7; время: 92 мс, всего: 105 мс42 раза подряд, n=155923, подряд Количество значений: 7; затраченное время: 93 мс, всего: 106 мс43 раза подряд n=360655, количество последовательных значений: 5; затраты времени: 243 мс, всего: 349 мс44 раза подряд n=360655, количество последовательных значений: 5; затраты времени: 243 мс, общее количество: 349 мс45 раз подряд n=360655, непрерывный Количество значений: 5 Затраты времени: 243 мс, всего: 349 мс46 раз подряд n=360655, количество последовательных значений: 5; затраты времени: 243 мс, всего: 349 мс47 раз подряд n=360655, количество последовательных значений: 5; затраты времени: 243 мс, общее количество: 349 мс48 раз подряд n=370263, непрерывно Количество значений: 8 Затраченное время: 14 мс, Всего: 363 мс49 раз подряд, n=370263, количество последовательных значений: 8; время: 14 мс, всего: 363 мс50 раз подряд, n=370263, количество последовательных значений: 8; время: 14 мс, всего: 363 мс51 раз подряд, n=370263, непрерывно Количество значений: 8; Затраченное время: 14 мс, Всего: 363 мс52 последовательных раза, n=370263, количество последовательных значений: 8; время: 14 мс, всего: 363 мс53 последовательных раза, n=370263, количество последовательных значений: 8; время: 14 мс, всего: 363 мс54 раза подряд, n=370263, непрерывно Количество значений: 8; Затраченное время: 14 мс, Всего: 363 мс55 раз подряд, n=370263, количество последовательных значений: 8; время: 14 мс, всего: 363 мс56 раз подряд, n=492115, количество последовательных значений: 1; время: 185 мс, всего: 548 мс57 раз подряд, n=1349535, непрерывно Количество значений: 2; время работы: 1854 мс, всего: 2402 мс58 раз подряд n=1349535, количество последовательных значений: 2; затраты времени: 1854 мс, всего: 2402 мс59 раз подряд n=1357203, количество последовательных значений: 7; затраты времени: 22 мс, общее количество: 2424 мс60 раз подряд n=1357203, последовательное Количество значений: 7; потребление времени: 22 мс, всего: 2424 мс61 раз подряд n=1357203, количество последовательных значений: 7; затраты времени: 22 мс, всего: 2424 мс62 последовательных раза n=1357203, количество последовательных значений: 7; затраты времени: 22 мс, общее количество: 2424 мс63 последовательных раза n=1357203, последовательное Количество значений: 7; потребление времени: 22 мс, всего: 2424 мс64 последовательных раза n=1357203, количество последовательных значений: 7; затраты времени: 22 мс, всего: 2424 мс65 последовательных раз n=1357203, количество последовательных значений: 7; затраты времени: 22 мс, общее количество: 2424 мс66 последовательных раз n=2010735, непрерывно Количество значений: 8 Затраченное время: 1889 мс, Всего: 4313 мс67 раз подряд, n=2010735, количество последовательных значений: 8; затраты времени: 1889 мс, всего: 4313 мс68 раз подряд, n=2010735, количество последовательных значений: 8; затраты времени: 1889 мс, общее количество: 4313 мс69 раз подряд, n=2010735, подряд Количество значений: 8; Затраченное время: 1889 мс, Всего: 4313 мс70 раз подряд, n=2010735, количество последовательных значений: 8; время: 1889 мс, всего: 4313 мс71 раз подряд, n=2010735, количество последовательных значений: 8; время: 1889 мс, всего: 4313 мс72 раза подряд, n=2010735, подряд Количество значений: 8; Затраченное время: 1889 мс, Всего: 4313 мс73 раза подряд n=2010735, количество последовательных значений: 8; затраты времени: 1890 мс, всего: 4314 мс74 последовательных раза n=4652355, количество последовательных значений: 3; затраты времени: 10583 мс, общее количество: 14897 мс75 раз подряд n=4652355, подряд Количество значений: 3; Затраченное время: 10583 мс, всего: 14897 мс76 раз подряд, n=4652355, количество последовательных значений: 3; затраты времени: 10583 мс, всего: 14897 мс77 раз подряд, n=17051709, количество последовательных значений: 13; затраты времени: 86082 мс, общее количество: 100979мс78 раз подряд n=17051709, количество последовательных значений: 13; время: 86082мс, всего: 100979мс79 раз подряд n=17051709, количество последовательных значений: 13; время: 86082мс, всего: 100979мс80 раз подряд n=17051709, подряд Количество значений: 13 Затраты времени: 86082 мс, всего: 100979 мс81 раз подряд, n=17051709, количество последовательных значений: 13 Затраты времени: 86082 мс, всего: 100979 мс82 раза подряд, n=17051709, количество последовательных значений: 13; : 100979мс83 последовательных раза n=17051709, количество последовательных значений: 13; время: 86082мс, всего: 100979мс84 последовательных раза n=17051709, количество последовательных значений: 13; время: 86082мс, всего: 100979мс85 последовательных раз n=17051709, последовательных Количество значений: 13 Затраты времени: 86083 мс, всего: 100980 мс 86 раз подряд n=17051709, количество последовательных значений: 13 Затраты времени: 86083мс, всего: 100980мс 87 раз подряд n=17051709, количество последовательных значений: 86083мс; , общий : 100980мс88 раз подряд n=17051709, количество последовательных значений: 13; затраты времени: 86083мс, всего: 100980мс89 раз подряд n=17051709, количество последовательных значений: 13; затраты времени: 86083мс, общее количество: 100980мс90 раз подряд n=20831325, последовательное Количество значений: 15 Затраты времени: 34772 мс, всего: 135752 мс91 раз подряд, n=20831325, количество последовательных значений: 15 Затраты времени: 34772 мс, всего: 135752 мс92 раза подряд, n=20831325, количество последовательных значений: 15; : 135752 мс93 раза подряд, n=20831325, количество последовательных значений: 15; затраты времени: 34772 мс, всего: 135752 мс94 раза подряд, n=20831325, количество последовательных значений: 15; затраты времени: 34772 мс, общее количество: 135752 мс95 раз подряд, n=20831325, последовательное Количество значений: 15 Затраты времени: 34772 мс, всего: 135752 мс96 раз подряд, n=20831325, количество последовательных значений: 15 Затраты времени: 34772 мс, всего: 135752 мс97 раз подряд, n=20831325, количество последовательных значений: 15; : 135752мс98 раз подряд n=20831325, количество последовательных значений: 15; затраты времени: 34772мс, всего: 135752мс99 раз подряд n=20831325, количество последовательных значений: 15; затраты времени: 34773мс, общее количество: 135753мс100 раз подряд n=20831325, последовательное Количество значений: 15 Затраты времени: 34773 мс, всего: 135753 мс101 раз подряд, n=20831325, количество последовательных значений: 15 Затраты времени: 34773 мс, всего: 135753 мс102 раза подряд, n=20831325, количество последовательных значений: 15; : 135753мс103 раза подряд n=20831325, количество последовательных значений: 15; затраты времени: 34773мс, всего: 135753мс104 раза подряд n=20831325, количество последовательных значений: 15; затраты времени: 34773мс, всего: 135753мс105 раз подряд n=47326695, количество последовательных значений: 5; затраты времени: 319130мс, всего: 452155мс106 раз подряд n=47326695, количество последовательных значений: 5; затраты времени: 319131мс, всего: 452156мс107 раз подряд n=47326695, количество последовательных значений: 5; время: 319131мс, всего: 452156мс108 раз подряд n=47326695, количество последовательных значений: 5; время: 319131мс, всего: 452156мс109 раз подряд n=47326695, количество последовательных значений: 5; время: 319131мс, всего: 452156мс110 раз подряд n=122164749, количество последовательных значений: 1; время: 1395200мс, всего: 1847356мс111 раз подряд n=189695661, количество последовательных значений: 6; затраты времени: 1705936мс, всего: 3553292мс112 раз подряд n=189695661, количество последовательных значений: 6; затраты времени: 1705936мс, всего: 3553292мс113 раз подряд n=189695661, количество последовательных значений: 6; время: 1705936мс, всего: 3553292мс114 раз подряд n=189695661, количество последовательных значений: 6; время: 1705936мс, всего: 3553292мс115 раз подряд n=189695661, количество последовательных значений: 6; время: 1705936мс, всего: 3553292мс116 раз подряд n=189695661, количество последовательных значений: 6; время: 1705936мс, всего: 3553292мс117 раз подряд n=191912785, количество последовательных значений: 7; время: 61964мс, всего: 3615256мс118 раз подряд n=191912785, количество последовательных значений: 7; время: 61964мс, всего: 3615256мс119 раз подряд n=191912785, количество последовательных значений: 7; затраты времени: 61964мс, всего: 3615256мс120 раз подряд n=191912785, количество последовательных значений: 7; затраты времени: 61964мс, всего: 3615256мс121 раз подряд n=191912785, количество последовательных значений: 7; время: 61964мс, всего: 3615256мс122 раз подряд n=191912785, количество последовательных значений: 7; время: 61964мс, всего: 3615256мс123 раза подряд n=191912785, количество последовательных значений: 7; затраты времени: 61964мс, всего: 3615256мс124 раза подряд n=387096135, количество последовательных значений: 1; затраты времени: 6650201мс, общее количество: 10265457мс----- Этот запуск завершен, и следующее значение превысило 1000 раз бесполезное время: 0 мс, всего: xxxxxx135395 мс;
. . . . . . Последующие результаты еще не подсчитаны.
Код выглядит следующим образом:
пакет com.test.test.zhihe;импорт java.util.ArrayList;импорт java.util.HashMap;импорт java.util.Iterator;импорт java.util.List;импорт java.util.Map;импорт java.util.Set ;/** * Шесть последовательных нечетных чисел a, a+2, a+4, a+6, a+8, a+10 — составные числа, найдите наименьшее a */public class ZhishuTest { /** * Определить, является ли число составным числом. По сравнению с простыми числами* @param num * @return */ public static boolean He(int num){ // Квадратный корень 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() { // Время начала long startMillis = System.currentTimeMillis() // Время последнего завершения long preMillis = System.currentTimeMillis() // Время завершения на этот раз long curMillis =; System.currentTimeMillis(); // int lianxu = 1000; int start = 1; int times = 1; for (int x = 1; x <= lianxu; x++) { if(times > x){ // jump; прошло, войдите в следующий цикл} else { times = x; } List<Map<Integer, Integer>> resList = testTimesHe(x, start, false); Если число есть, обработайте его if(null == resList || resList.isEmpty()){ // Если его невозможно найти, следующего не будет... // Глубокая вложенность — это слишком отвратительно. . . перерыв; } int size = resList.size(); // Обход Iterator<Map<Integer, Integer>> iteratorR = resList.iterator(); while (iteratorR.hasNext()) { Map<Integer, Integer> map = ( Map<Integer, Integer>) iteratorR.next(); // if(null != map && !map.isEmpty()){ // Обход карты настолько отвратительный. Плохой Java Set<Integer>keys= map.keySet(); Iterator<Integer> iteratorK =keys.iterator(); if(iteratorK.hasNext()){ Integer key = iteratorK.next( ); // Количество раз. Целое значение = map.get(key); // Минимум n // // Это время завершения curMillis = System.currentTimeMillis(); // long allTimeout = curMillis; - startMillis; long curTimeout = curMillis - preMillis; System.out.println(""+key+" раз подряд n="+value +", количество последовательных значений: "+size + "; затраты времени: " + curTimeout + " мс, всего: "+allTimeout+"мс"); // Обрабатываем данные, те, которые были обработаны жадно, не будут обработаны if(key > 0 && value > 0){ times = key+1; start = value; } } } } // Включаем время последнего завершения preMillis = System.currentTimeMillis(); } // // Это время завершения curMillis = System.currentTimeMillis(); // long allTimeout = curMillis - startMillis; long curTimeout = curMillis - preMillis; out.println("Этот запуск завершен, следующее значение превысило 100 раз" + "; Бесполезное время: " + curTimeout + "мс, всего: "+allTimeout+"ms"); } /** * * Время проверки + 2 — это минимальное n составных чисел * @param times вычисления * @param start start Number * @param onlyStart вычисляет только одно начальное значение. Используется для recursion. Внешние вызовы должны передаваться в * @return */ public static List<Map<Integer, Integer>> testTimesHe(int times,int start, boolean onlyStart) { // List<Map<Integer, Integer>> resList= new ArrayList<Map<Integer, Integer>>() // // Защитное программирование if(start < 1){ return resList } if(0 == start % 2 ) { // Не обрабатывать четные числа return resList } if(times < 1){ times = 1; // int result = -1 // for (int i = start; i < Integer.MAX_VALUE; i+=2) { // // Избегаем непрерывных вычислений без возврата if(onlyStart && i > start){ // Если start не удовлетворен, просто возвращаем напрямую resList } for (int j = 0; j < times; j++) { int n = i + 2*j; // if(!He(n)){ Break // Внутренний выход} // if(j+1 == times){ // Бежим к результату . раз Это удовлетворяет result = i;break;// Не важно, отступаете вы или нет, мы добегаем до конца for} } // if(result > 0){ // //System.out.println(" result = "+result ); // Map<Integer, Integer> resMap = new HashMap<Integer, Integer>(); resMap.put(times, result); resList.add(resMap); // Попробуйте следующее количество раз, рекурсия; На самом деле, эту рекурсию можно дополнительно оптимизировать, просто добавьте в следующий раз; . . // startTimes, добавьте этот параметр напрямую. . . Жадная рекурсия? // Еще раз, начиная с числа result int t = times +1; List<Map<Integer, Integer>> nextList = testTimesHe(t, s, true); is Числа следующего уровня добавляются к текущему результату if(null != nextList && false==nextList.isEmpty()){ resList.addAll(nextList }); // перерыв // выход из внешнего слоя } } // возвращение resList }};
Примечание. Еще есть возможности для улучшения, пожалуйста, внесите исправления в следующий раз.