連續(xù)6個(gè)奇數(shù)a,a+2,a+4,a+6,a+8,a+10都是合數(shù),求最小的a的暴力解法。
先上結(jié)果,后面貼上代碼:
1次連續(xù)n=9,連續(xù)值個(gè)數(shù): 1;耗時(shí): 0ms,總計(jì): 0ms2次連續(xù)n=25,連續(xù)值個(gè)數(shù): 1;耗時(shí): 0ms,總計(jì): 0ms3次連續(xù)n=91,連續(xù)值個(gè)數(shù): 1;耗時(shí): 0ms,總計(jì): 0ms4次連續(xù)n=115,連續(xù)值個(gè)數(shù): 3;耗時(shí): 0ms,總計(jì): 1ms5次連續(xù)n=115,連續(xù)值個(gè)數(shù): 3;耗時(shí): 0ms,總計(jì): 1ms6次連續(xù)n=115,連續(xù)值個(gè)數(shù): 3;耗時(shí): 0ms,總計(jì): 1ms7次連續(xù)n=525,連續(xù)值個(gè)數(shù): 2;耗時(shí): 0ms,總計(jì): 1ms8次連續(xù)n=525,連續(xù)值個(gè)數(shù): 2;耗時(shí): 0ms,總計(jì): 1ms9次連續(xù)n=889,連續(xù)值個(gè)數(shù): 1;耗時(shí): 0ms,總計(jì): 1ms10次連續(xù)n=1131,連續(xù)值個(gè)數(shù): 1;耗時(shí): 0ms,總計(jì): 1ms11次連續(xù)n=1329,連續(xù)值個(gè)數(shù): 6;耗時(shí): 0ms,總計(jì): 1ms12次連續(xù)n=1329,連續(xù)值個(gè)數(shù): 6;耗時(shí): 0ms,總計(jì): 1ms13次連續(xù)n=1329,連續(xù)值個(gè)數(shù): 6;耗時(shí): 0ms,總計(jì): 1ms14次連續(xù)n=1329,連續(xù)值個(gè)數(shù): 6;耗時(shí): 0ms,總計(jì): 1ms15次連續(xù)n=1329,連續(xù)值個(gè)數(shù): 6;耗時(shí): 0ms,總計(jì): 1ms16次連續(xù)n=1329,連續(xù)值個(gè)數(shù): 6;耗時(shí): 0ms,總計(jì): 1ms17次連續(xù)n=9553,連續(xù)值個(gè)數(shù): 1;耗時(shí): 2ms,總計(jì): 3ms18次連續(xù)n=15685,連續(xù)值個(gè)數(shù): 4;耗時(shí): 1ms,總計(jì): 5ms19次連續(xù)n=15685,連續(xù)值個(gè)數(shù): 4;耗時(shí): 1ms,總計(jì): 5ms20次連續(xù)n=15685,連續(xù)值個(gè)數(shù): 4;耗時(shí): 1ms,總計(jì): 5ms21次連續(xù)n=15685,連續(xù)值個(gè)數(shù): 4;耗時(shí): 1ms,總計(jì): 5ms22次連續(xù)n=19611,連續(xù)值個(gè)數(shù): 4;耗時(shí): 2ms,總計(jì): 8ms23次連續(xù)n=19611,連續(xù)值個(gè)數(shù): 4;耗時(shí): 2ms,總計(jì): 8ms24次連續(xù)n=19611,連續(xù)值個(gè)數(shù): 4;耗時(shí): 2ms,總計(jì): 8ms25次連續(xù)n=19611,連續(xù)值個(gè)數(shù): 4;耗時(shí): 2ms,總計(jì): 8ms26次連續(xù)n=31399,連續(xù)值個(gè)數(shù): 10;耗時(shí): 5ms,總計(jì): 13ms27次連續(xù)n=31399,連續(xù)值個(gè)數(shù): 10;耗時(shí): 5ms,總計(jì): 13ms28次連續(xù)n=31399,連續(xù)值個(gè)數(shù): 10;耗時(shí): 5ms,總計(jì): 13ms29次連續(xù)n=31399,連續(xù)值個(gè)數(shù): 10;耗時(shí): 5ms,總計(jì): 13ms30次連續(xù)n=31399,連續(xù)值個(gè)數(shù): 10;耗時(shí): 5ms,總計(jì): 13ms31次連續(xù)n=31399,連續(xù)值個(gè)數(shù): 10;耗時(shí): 5ms,總計(jì): 13ms32次連續(xù)n=31399,連續(xù)值個(gè)數(shù): 10;耗時(shí): 5ms,總計(jì): 13ms33次連續(xù)n=31399,連續(xù)值個(gè)數(shù): 10;耗時(shí): 5ms,總計(jì): 13ms34次連續(xù)n=31399,連續(xù)值個(gè)數(shù): 10;耗時(shí): 5ms,總計(jì): 13ms35次連續(xù)n=31399,連續(xù)值個(gè)數(shù): 10;耗時(shí): 5ms,總計(jì): 13ms36次連續(xù)n=155923,連續(xù)值個(gè)數(shù): 7;耗時(shí): 92ms,總計(jì): 105ms37次連續(xù)n=155923,連續(xù)值個(gè)數(shù): 7;耗時(shí): 92ms,總計(jì): 105ms38次連續(xù)n=155923,連續(xù)值個(gè)數(shù): 7;耗時(shí): 92ms,總計(jì): 105ms39次連續(xù)n=155923,連續(xù)值個(gè)數(shù): 7;耗時(shí): 92ms,總計(jì): 105ms40次連續(xù)n=155923,連續(xù)值個(gè)數(shù): 7;耗時(shí): 92ms,總計(jì): 105ms41次連續(xù)n=155923,連續(xù)值個(gè)數(shù): 7;耗時(shí): 92ms,總計(jì): 105ms42次連續(xù)n=155923,連續(xù)值個(gè)數(shù): 7;耗時(shí): 93ms,總計(jì): 106ms43次連續(xù)n=360655,連續(xù)值個(gè)數(shù): 5;耗時(shí): 243ms,總計(jì): 349ms44次連續(xù)n=360655,連續(xù)值個(gè)數(shù): 5;耗時(shí): 243ms,總計(jì): 349ms45次連續(xù)n=360655,連續(xù)值個(gè)數(shù): 5;耗時(shí): 243ms,總計(jì): 349ms46次連續(xù)n=360655,連續(xù)值個(gè)數(shù): 5;耗時(shí): 243ms,總計(jì): 349ms47次連續(xù)n=360655,連續(xù)值個(gè)數(shù): 5;耗時(shí): 243ms,總計(jì): 349ms48次連續(xù)n=370263,連續(xù)值個(gè)數(shù): 8;耗時(shí): 14ms,總計(jì): 363ms49次連續(xù)n=370263,連續(xù)值個(gè)數(shù): 8;耗時(shí): 14ms,總計(jì): 363ms50次連續(xù)n=370263,連續(xù)值個(gè)數(shù): 8;耗時(shí): 14ms,總計(jì): 363ms51次連續(xù)n=370263,連續(xù)值個(gè)數(shù): 8;耗時(shí): 14ms,總計(jì): 363ms52次連續(xù)n=370263,連續(xù)值個(gè)數(shù): 8;耗時(shí): 14ms,總計(jì): 363ms53次連續(xù)n=370263,連續(xù)值個(gè)數(shù): 8;耗時(shí): 14ms,總計(jì): 363ms54次連續(xù)n=370263,連續(xù)值個(gè)數(shù): 8;耗時(shí): 14ms,總計(jì): 363ms55次連續(xù)n=370263,連續(xù)值個(gè)數(shù): 8;耗時(shí): 14ms,總計(jì): 363ms56次連續(xù)n=492115,連續(xù)值個(gè)數(shù): 1;耗時(shí): 185ms,總計(jì): 548ms57次連續(xù)n=1349535,連續(xù)值個(gè)數(shù): 2;耗時(shí): 1854ms,總計(jì): 2402ms58次連續(xù)n=1349535,連續(xù)值個(gè)數(shù): 2;耗時(shí): 1854ms,總計(jì): 2402ms59次連續(xù)n=1357203,連續(xù)值個(gè)數(shù): 7;耗時(shí): 22ms,總計(jì): 2424ms60次連續(xù)n=1357203,連續(xù)值個(gè)數(shù): 7;耗時(shí): 22ms,總計(jì): 2424ms61次連續(xù)n=1357203,連續(xù)值個(gè)數(shù): 7;耗時(shí): 22ms,總計(jì): 2424ms62次連續(xù)n=1357203,連續(xù)值個(gè)數(shù): 7;耗時(shí): 22ms,總計(jì): 2424ms63次連續(xù)n=1357203,連續(xù)值個(gè)數(shù): 7;耗時(shí): 22ms,總計(jì): 2424ms64次連續(xù)n=1357203,連續(xù)值個(gè)數(shù): 7;耗時(shí): 22ms,總計(jì): 2424ms65次連續(xù)n=1357203,連續(xù)值個(gè)數(shù): 7;耗時(shí): 22ms,總計(jì): 2424ms66次連續(xù)n=2010735,連續(xù)值個(gè)數(shù): 8;耗時(shí): 1889ms,總計(jì): 4313ms67次連續(xù)n=2010735,連續(xù)值個(gè)數(shù): 8;耗時(shí): 1889ms,總計(jì): 4313ms68次連續(xù)n=2010735,連續(xù)值個(gè)數(shù): 8;耗時(shí): 1889ms,總計(jì): 4313ms69次連續(xù)n=2010735,連續(xù)值個(gè)數(shù): 8;耗時(shí): 1889ms,總計(jì): 4313ms70次連續(xù)n=2010735,連續(xù)值個(gè)數(shù): 8;耗時(shí): 1889ms,總計(jì): 4313ms71次連續(xù)n=2010735,連續(xù)值個(gè)數(shù): 8;耗時(shí): 1889ms,總計(jì): 4313ms72次連續(xù)n=2010735,連續(xù)值個(gè)數(shù): 8;耗時(shí): 1889ms,總計(jì): 4313ms73次連續(xù)n=2010735,連續(xù)值個(gè)數(shù): 8;耗時(shí): 1890ms,總計(jì): 4314ms74次連續(xù)n=4652355,連續(xù)值個(gè)數(shù): 3;耗時(shí): 10583ms,總計(jì): 14897ms75次連續(xù)n=4652355,連續(xù)值個(gè)數(shù): 3;耗時(shí): 10583ms,總計(jì): 14897ms76次連續(xù)n=4652355,連續(xù)值個(gè)數(shù): 3;耗時(shí): 10583ms,總計(jì): 14897ms77次連續(xù)n=17051709,連續(xù)值個(gè)數(shù): 13;耗時(shí): 86082ms,總計(jì): 100979ms78次連續(xù)n=17051709,連續(xù)值個(gè)數(shù): 13;耗時(shí): 86082ms,總計(jì): 100979ms79次連續(xù)n=17051709,連續(xù)值個(gè)數(shù): 13;耗時(shí): 86082ms,總計(jì): 100979ms80次連續(xù)n=17051709,連續(xù)值個(gè)數(shù): 13;耗時(shí): 86082ms,總計(jì): 100979ms81次連續(xù)n=17051709,連續(xù)值個(gè)數(shù): 13;耗時(shí): 86082ms,總計(jì): 100979ms82次連續(xù)n=17051709,連續(xù)值個(gè)數(shù): 13;耗時(shí): 86082ms,總計(jì): 100979ms83次連續(xù)n=17051709,連續(xù)值個(gè)數(shù): 13;耗時(shí): 86082ms,總計(jì): 100979ms84次連續(xù)n=17051709,連續(xù)值個(gè)數(shù): 13;耗時(shí): 86082ms,總計(jì): 100979ms85次連續(xù)n=17051709,連續(xù)值個(gè)數(shù): 13;耗時(shí): 86083ms,總計(jì): 100980ms86次連續(xù)n=17051709,連續(xù)值個(gè)數(shù): 13;耗時(shí): 86083ms,總計(jì): 100980ms87次連續(xù)n=17051709,連續(xù)值個(gè)數(shù): 13;耗時(shí): 86083ms,總計(jì): 100980ms88次連續(xù)n=17051709,連續(xù)值個(gè)數(shù): 13;耗時(shí): 86083ms,總計(jì): 100980ms89次連續(xù)n=17051709,連續(xù)值個(gè)數(shù): 13;耗時(shí): 86083ms,總計(jì): 100980ms90次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34772ms,總計(jì): 135752ms91次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34772ms,總計(jì): 135752ms92次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34772ms,總計(jì): 135752ms93次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34772ms,總計(jì): 135752ms94次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34772ms,總計(jì): 135752ms95次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34772ms,總計(jì): 135752ms96次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34772ms,總計(jì): 135752ms97次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34772ms,總計(jì): 135752ms98次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34772ms,總計(jì): 135752ms99次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34773ms,總計(jì): 135753ms100次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34773ms,總計(jì): 135753ms101次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34773ms,總計(jì): 135753ms102次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34773ms,總計(jì): 135753ms103次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34773ms,總計(jì): 135753ms104次連續(xù)n=20831325,連續(xù)值個(gè)數(shù): 15;耗時(shí): 34773ms,總計(jì): 135753ms105次連續(xù)n=47326695,連續(xù)值個(gè)數(shù): 5;耗時(shí): 319130ms,總計(jì): 452155ms106次連續(xù)n=47326695,連續(xù)值個(gè)數(shù): 5;耗時(shí): 319131ms,總計(jì): 452156ms107次連續(xù)n=47326695,連續(xù)值個(gè)數(shù): 5;耗時(shí): 319131ms,總計(jì): 452156ms108次連續(xù)n=47326695,連續(xù)值個(gè)數(shù): 5;耗時(shí): 319131ms,總計(jì): 452156ms109次連續(xù)n=47326695,連續(xù)值個(gè)數(shù): 5;耗時(shí): 319131ms,總計(jì): 452156ms110次連續(xù)n=122164749,連續(xù)值個(gè)數(shù): 1;耗時(shí): 1395200ms,總計(jì): 1847356ms111次連續(xù)n=189695661,連續(xù)值個(gè)數(shù): 6;耗時(shí): 1705936ms,總計(jì): 3553292ms112次連續(xù)n=189695661,連續(xù)值個(gè)數(shù): 6;耗時(shí): 1705936ms,總計(jì): 3553292ms113次連續(xù)n=189695661,連續(xù)值個(gè)數(shù): 6;耗時(shí): 1705936ms,總計(jì): 3553292ms114次連續(xù)n=189695661,連續(xù)值個(gè)數(shù): 6;耗時(shí): 1705936ms,總計(jì): 3553292ms115次連續(xù)n=189695661,連續(xù)值個(gè)數(shù): 6;耗時(shí): 1705936ms,總計(jì): 3553292ms116次連續(xù)n=189695661,連續(xù)值個(gè)數(shù): 6;耗時(shí): 1705936ms,總計(jì): 3553292ms117次連續(xù)n=191912785,連續(xù)值個(gè)數(shù): 7;耗時(shí): 61964ms,總計(jì): 3615256ms118次連續(xù)n=191912785,連續(xù)值個(gè)數(shù): 7;耗時(shí): 61964ms,總計(jì): 3615256ms119次連續(xù)n=191912785,連續(xù)值個(gè)數(shù): 7;耗時(shí): 61964ms,總計(jì): 3615256ms120次連續(xù)n=191912785,連續(xù)值個(gè)數(shù): 7;耗時(shí): 61964ms,總計(jì): 3615256ms121次連續(xù)n=191912785,連續(xù)值個(gè)數(shù): 7;耗時(shí): 61964ms,總計(jì): 3615256ms122次連續(xù)n=191912785,連續(xù)值個(gè)數(shù): 7;耗時(shí): 61964ms,總計(jì): 3615256ms123次連續(xù)n=191912785,連續(xù)值個(gè)數(shù): 7;耗時(shí): 61964ms,總計(jì): 3615256ms124次連續(xù)n=387096135,連續(xù)值個(gè)數(shù): 1;耗時(shí): 6650201ms,總計(jì): 10265457ms----- 本次已經(jīng)跑完了,下一個(gè)值超出了1000次;無(wú)用耗時(shí): 0ms,總計(jì): xxxxxx135395ms
。。。。。。 后面的結(jié)果還沒(méi)算出來(lái)
代碼如下所示:
package 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;/** * 連續(xù)6個(gè)奇數(shù)a,a+2,a+4,a+6,a+8,a+10都是合數(shù),求最小的a */public class ZhishuTest { /** * 判斷某個(gè)數(shù)是否是合數(shù). 相較于質(zhì)數(shù) * @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; } /** * 主函數(shù) * @param args */ public static void main(String[] args) { test(); } public static void test() { // 開始時(shí)間 long startMillis = System.currentTimeMillis(); // 上次完成時(shí)間 long preMillis = System.currentTimeMillis(); // 本次完成時(shí)間 long curMillis = System.currentTimeMillis(); // int lianxu = 1000; int start = 1; int times = 1; for (int x = 1; x <= lianxu; x++) { if(times > x){ continue;// 跳過(guò),進(jìn)入下一次循環(huán) } else { times = x; } List<Map<Integer, Integer>> resList = testTimesHe(x, start, false); // // 如果有數(shù)字,則進(jìn)行處理 if(null == resList || resList.isEmpty()){ // 找不到,就不會(huì)再有下一個(gè)了... // 深層嵌套太惡心了。。。 break; } 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()){ // Map遍歷太惡心了.爛Java Set<Integer> keys= map.keySet(); Iterator<Integer> iteratorK = keys.iterator(); if(iteratorK.hasNext()){ Integer key = iteratorK.next(); // 次數(shù) Integer value = map.get(key); // 最小n // // 本次完成時(shí)間 curMillis = System.currentTimeMillis(); // long allTimeout = curMillis - startMillis; long curTimeout = curMillis - preMillis; System.out.println(""+key+"次連續(xù)n="+value +",連續(xù)值個(gè)數(shù): "+size + ";耗時(shí): " + curTimeout + "ms,總計(jì): "+allTimeout+"ms"); // 處理數(shù)據(jù),貪婪處理過(guò)的就不處理了 if(key > 0 && value > 0){ times = key+1; start = value; } } } } // 計(jì)入上次完成時(shí)間 preMillis = System.currentTimeMillis(); } // // 本次完成時(shí)間 curMillis = System.currentTimeMillis(); // long allTimeout = curMillis - startMillis; long curTimeout = curMillis - preMillis; System.out.println("本次已經(jīng)跑完了,下一個(gè)值超出了100次 " + ";無(wú)用耗時(shí): " + curTimeout + "ms,總計(jì): "+allTimeout+"ms"); } /** * * 測(cè)試 times 次的+2都是合數(shù)的最小n * @param times 計(jì)算次數(shù) * @param start 起始數(shù)字 * @param onlyStart 只計(jì)算單個(gè)start值.用于遞歸.外部調(diào)用應(yīng)該傳入 * @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){ // 不處理偶數(shù) return resList; } if(times < 1){ times = 1; } // int result = -1; // for (int i = start; i < Integer.MAX_VALUE; i+=2) { // // 避免一直計(jì)算不返回 if(onlyStart && i > start){ // start 不滿足,就直接 return resList; } for (int j = 0; j < times; j++) { int n = i + 2*j; // if(!He(n)){ break;// 內(nèi)層退出 } // if(j+1 == times){ // 跑到結(jié)果了. times 次都滿足 result = i; break;// 這里退不退無(wú)所謂,跑到for的最后了 } } // if(result > 0){ // //System.out.println("result = "+result); // Map<Integer, Integer> resMap = new HashMap<Integer, Integer>(); resMap.put(times, result); resList.add(resMap); // 嘗試下一個(gè)次數(shù),遞歸; 其實(shí)這個(gè)遞歸還可以繼續(xù)優(yōu)化一點(diǎn); 貪婪算法,直接加下一次。。。 // startTimes, 直接加這個(gè)參數(shù)。。。貪婪遞歸? // 多1次,從result這個(gè)數(shù)開始 int t = times +1; int s = result; List<Map<Integer, Integer>> nextList = testTimesHe(t, s, true); // 如果有下一層的數(shù)字,則加入到當(dāng)前結(jié)果 if(null != nextList && false==nextList.isEmpty()){ resList.addAll(nextList); } // break;// 外層退出 } } // return resList; }}說(shuō)明: 還有改進(jìn)空間,歡迎下次修正
新聞熱點(diǎn)
疑難解答
圖片精選