เลขคี่หกตัวติดต่อกัน a, a+2, a+4, a+6, a+8, a+10 ทั้งหมดเป็นจำนวนประกอบ จงหาคำตอบของกำลังเดรัจฉานสำหรับ a ที่เล็กที่สุด
โพสต์ผลลัพธ์ก่อน จากนั้นจึงวางโค้ด:
1 ต่อเนื่องกัน n=9 จำนวนค่าต่อเนื่องกัน: 1; ใช้เวลานาน: 0ms, รวม: 0ms 2 ครั้งติดต่อกัน n=25, จำนวนค่าต่อเนื่องกัน: 1; 0ms, ทั้งหมด: 0ms 3 ครั้งติดต่อกัน n=91, จำนวนค่าติดต่อกัน: 1; ใช้เวลานาน: 0ms, รวม: 0ms 4 ครั้งติดต่อกัน n=115, จำนวนค่าต่อเนื่องกัน: 3; ใช้เวลานาน: 0ms, ทั้งหมด: 1ms 5 ครั้งติดต่อกัน n=115, จำนวนค่าที่ต่อเนื่องกัน: 3; การสิ้นเปลืองเวลา: 0ms, รวม: 1ms 6 ครั้งติดต่อกัน n=115, จำนวนค่าที่ต่อเนื่องกัน: 3; 0ms, ทั้งหมด: 1ms 7 ต่อเนื่องกัน n=525, จำนวนค่าต่อเนื่อง: 2; ใช้เวลานาน: 0ms, รวม: 1ms 8 ครั้งติดต่อกัน n=525, จำนวนค่าต่อเนื่อง: 2; ใช้เวลานาน: 0ms, ทั้งหมด: 1ms 9 ครั้งติดต่อกัน n=889, จำนวนค่าที่ต่อเนื่องกัน: 1; ใช้เวลานาน: 0ms, ทั้งหมด: 1ms 10 ครั้งติดต่อกัน n=1131, จำนวนค่าที่ต่อเนื่องกัน: 1; 0ms, ทั้งหมด: 1ms 11 ครั้งติดต่อกัน n= 1329 จำนวนค่าต่อเนื่อง: 6 ใช้เวลานาน: 0ms รวม: 1ms12 ครั้งติดต่อกัน n=1329 จำนวนค่าต่อเนื่องกัน: 6 ใช้เวลานาน: 0ms รวม: 1ms 13 ครั้งติดต่อกัน n=1329 จำนวนค่าที่ต่อเนื่องกัน: 6; การสิ้นเปลืองเวลา: 0ms รวม: 1ms 14 ครั้งติดต่อกัน n=1329 จำนวนการสิ้นเปลืองเวลา: 0ms รวม: 1ms 15 ครั้งติดต่อกัน n= 1329 จำนวนค่าต่อเนื่องกัน: 6; ใช้เวลานาน: 0ms, รวม: 1ms16 ครั้งติดต่อกัน n=1329, จำนวนค่าต่อเนื่องกัน: 6; 0ms, ทั้งหมด: 1ms, 17 ครั้งติดต่อกัน n=9553, จำนวนค่าต่อเนื่องกัน: 1; ใช้เวลานาน: 2ms, ทั้งหมด: 3ms, 18 ครั้งติดต่อกัน n=15685, จำนวนค่าต่อเนื่องกัน: 4; 5ms, 19 ครั้งติดต่อกัน n = 15685, จำนวนค่าที่ต่อเนื่องกัน: 4; การใช้เวลา: 1ms, ทั้งหมด: 5ms20 ครั้งติดต่อกัน n = 15685, จำนวนค่าที่ต่อเนื่องกัน: 4; ใช้เวลานาน: 1ms, ทั้งหมด: 5ms, 21 ครั้งติดต่อกัน n=15685, จำนวนค่าต่อเนื่องกัน: 4; ใช้เวลานาน: 1ms, ทั้งหมด: 5ms, 22 ครั้งติดต่อกัน n=19611, จำนวนค่าต่อเนื่องกัน: 4; : 2ms, ทั้งหมด: 8ms23 ครั้งติดต่อกัน n=19611, จำนวนค่าที่ต่อเนื่องกัน: 4; ใช้เวลานาน: 2ms, ทั้งหมด: 8ms24 ครั้งติดต่อกัน n=19611 จำนวนค่าที่ต่อเนื่องกัน: 4; การสิ้นเปลืองเวลา: 2ms, รวม: 8ms25 ครั้งติดต่อกัน n=19611, จำนวนค่าที่ต่อเนื่องกัน: 4; จำนวนรวม: 8ms26 ครั้งติดต่อกัน n=31399, จำนวนค่าติดต่อกัน: 10; ใช้เวลานาน: 5ms, ทั้งหมด: 13ms, 27 ครั้งติดต่อกัน n=31399, จำนวนค่าต่อเนื่องกัน: 10; ใช้เวลานาน: 5ms, ทั้งหมด: 13ms, 28 ครั้งติดต่อกัน n=31399, จำนวนค่าติดต่อกัน: 10; : 5ms, ทั้งหมด: 13ms30 ครั้งติดต่อกัน n=31399, จำนวนค่าที่ต่อเนื่องกัน: 10; ใช้เวลานาน: 5ms, ทั้งหมด: 13ms31 ครั้งติดต่อกัน n=31399, จำนวนค่าที่ต่อเนื่องกัน: 10; การสิ้นเปลืองเวลา: 5ms, ทั้งหมด: 13ms32 ครั้งติดต่อกัน n=31399, จำนวนค่าที่ต่อเนื่องกัน: 10; จำนวนรวม: 13ms33 ครั้งติดต่อกัน n=31399, จำนวนค่าติดต่อกัน: 10; การใช้เวลา: 5ms, ทั้งหมด: 13ms34 ครั้งติดต่อกัน n=31399 จำนวนค่าติดต่อกัน: 10 ใช้เวลานาน: 5ms รวม: 13ms35 ครั้งติดต่อกัน n=31399 จำนวนค่าต่อเนื่องกัน: 10 ใช้เวลานาน: 5ms ทั้งหมด: 13ms36 ครั้งติดต่อกัน n=155923 ติดต่อกัน จำนวนค่า: 7; เวลาที่ใช้: 92ms, ทั้งหมด: 105ms37 ครั้งติดต่อกัน n=155923 จำนวนค่าติดต่อกัน: 7; ใช้เวลานาน: 92ms รวม: 105ms38 ครั้งติดต่อกัน n=155923 ต่อเนื่องกัน จำนวนค่า: 7; เวลาที่ใช้: 92ms, ทั้งหมด: 105ms40 ครั้งติดต่อกัน n=155923 จำนวนค่าติดต่อกัน: 7; ใช้เวลานาน: 92ms รวม: 105ms41 ครั้งติดต่อกัน n=155923 ต่อเนื่องกัน จำนวนค่า: 7; เวลาที่ใช้: 93ms, ทั้งหมด: 106ms43 ครั้งติดต่อกัน n=360655 จำนวนค่าที่ต่อเนื่องกัน: 5; การสิ้นเปลืองเวลา: 243ms รวม: 349ms44 ครั้งติดต่อกัน n=360655 จำนวนการสิ้นเปลืองเวลาติดต่อกัน: 5; จำนวนค่าต่อเนื่อง: 5; การใช้เวลา: 243ms, รวม: 349ms46 ครั้งติดต่อกัน n=360655, จำนวนค่าที่ต่อเนื่องกัน: 5; การบริโภคเวลา: 243ms, ทั้งหมด: 349ms47 ครั้งติดต่อกัน n=360655, จำนวนค่าที่ต่อเนื่องกัน: 5; 243ms, จำนวนทั้งหมด: 349ms48 ครั้งติดต่อกัน n=370263, จำนวนค่าต่อเนื่อง: 8; เวลาที่ใช้: 14ms, ทั้งหมด: 363ms49 ครั้งติดต่อกัน n=370263 จำนวนค่าต่อเนื่องกัน: 8; ใช้เวลานาน: 14ms รวม: 363ms50 ครั้งติดต่อกัน n=370263 จำนวนค่าติดต่อกัน: 8; ทั้งหมด: 363ms51 ครั้งติดต่อกัน n=370263 ต่อเนื่อง จำนวนค่า: 8; เวลาที่ใช้: 14ms, ทั้งหมด: 363ms52 ครั้งติดต่อกัน n=370263 จำนวนค่าติดต่อกัน: 8; ใช้เวลานาน: 14ms รวม: 363ms53 ครั้งติดต่อกัน n=370263 จำนวนค่าติดต่อกัน: 8; ทั้งหมด: 363ms54 ครั้งติดต่อกัน n=370263 ต่อเนื่อง จำนวนค่า: 8; เวลาที่ใช้: 14ms, ทั้งหมด: 363ms55 ครั้งติดต่อกัน n=370263 จำนวนค่าติดต่อกัน: 8; ใช้เวลานาน: 14ms, ทั้งหมด: 363ms56 ครั้งติดต่อกัน n=492115, จำนวนค่าต่อเนื่องกัน: 1; ใช้เวลานาน: 185ms, ทั้งหมด: 548ms57 ครั้งติดต่อกัน n=1349535, ต่อเนื่อง จำนวนค่า: 2; ใช้เวลานาน: 1854ms, ทั้งหมด: 2402ms58 ครั้งติดต่อกัน n=1349535, จำนวนค่าที่ต่อเนื่องกัน: 2; การบริโภคเวลา: 1854ms, ทั้งหมด: 2402ms59 ครั้งติดต่อกัน n=1357203, จำนวนค่าที่ต่อเนื่องกัน: 7; 22ms, จำนวนทั้งหมด: 2424ms60 ครั้งติดต่อกัน n=1357203, จำนวนค่าติดต่อกัน: 7; การใช้เวลา: 22ms, ทั้งหมด: 2424ms61 ครั้งติดต่อกัน n=1357203 จำนวนค่าที่ต่อเนื่องกัน: 7; จำนวนรวม: 2424ms63 ครั้งติดต่อกัน n=1357203, จำนวนค่าติดต่อกัน: 7; การใช้เวลา: 22ms, ทั้งหมด: 2424ms64 ครั้งติดต่อกัน n=1357203 จำนวนค่าที่ต่อเนื่องกัน: 7; จำนวนการสิ้นเปลืองเวลาทั้งหมด: 2424ms65 ครั้งติดต่อกัน n=1357203 จำนวนการสิ้นเปลืองเวลาติดต่อกัน: 7; จำนวนค่าต่อเนื่อง: 8; เวลาที่ใช้: 1889ms, รวม: 4313ms67 ครั้งติดต่อกัน n=2010735 จำนวนค่าติดต่อกัน: 8; การบริโภคเวลา: 1889ms รวม: 4313ms68 ครั้งติดต่อกัน n=2010735 จำนวนค่าติดต่อกัน: 8; เวลาที่ใช้: 1889ms, ทั้งหมด: 4313ms70 ครั้งติดต่อกัน n=2010735 จำนวนค่าติดต่อกัน: 8; ใช้เวลานาน: 1889ms รวม: 4313ms71 ครั้งติดต่อกัน n=2010735 ติดต่อกัน จำนวนค่า: 8; เวลาที่ใช้: 1889ms, รวม: 4313ms73 ครั้งติดต่อกัน n=2010735, จำนวนค่าที่ต่อเนื่องกัน: 8; การบริโภคเวลา: 1890ms, รวม: 4314ms74 ครั้งติดต่อกัน n=4652355, จำนวนค่าที่ต่อเนื่องกัน: 3; การบริโภคเวลา: 10583ms, จำนวนทั้งหมด: 14897ms75 ครั้งติดต่อกัน n=4652355, จำนวนค่าที่ต่อเนื่องกัน: 3; เวลาที่ใช้: 10583ms, ทั้งหมด: 14897ms76 ครั้งติดต่อกัน n=4652355, จำนวนค่าที่ต่อเนื่องกัน: 3; การใช้เวลา: 10583ms, ทั้งหมด: 14897ms77 ครั้งติดต่อกัน n=17051709, จำนวนค่าที่ต่อเนื่องกัน: 13; การสิ้นเปลืองเวลา: 86082ms, จำนวนทั้งหมด: 100979ms78 ครั้งติดต่อกัน n=17051709 จำนวนค่าติดต่อกัน: 13 ใช้เวลานาน: 86082ms รวม: 100979ms79 ครั้งติดต่อกัน n=17051709 ติดต่อกัน จำนวนค่า: 13; ใช้เวลานาน: 86082ms, รวม: 100979ms81 ครั้งติดต่อกัน n = 17051709, จำนวนค่าต่อเนื่อง: 13; ใช้เวลานาน: 86082ms, ทั้งหมด : : 100979ms83 ครั้งติดต่อกัน n=17051709 จำนวนค่าติดต่อกัน: 13 ใช้เวลานาน: 86082ms รวม: 100979ms84 ครั้งติดต่อกัน n=17051709 ติดต่อกัน จำนวนค่า: 13; ใช้เวลานาน: 86083ms, รวม: 100980ms 86 ครั้งติดต่อกัน n = 17051709, จำนวนค่าต่อเนื่อง: 13; ใช้เวลานาน: 86083ms , ทั้งหมด : 100980ms88 ครั้งติดต่อกัน n=17051709 จำนวนค่าติดต่อกัน: 13; การใช้เวลา: 86083ms, รวม: 100980ms89 ครั้งติดต่อกัน n=17051709, จำนวนค่าติดต่อกัน: 13; การใช้เวลา: 86083ms, จำนวนทั้งหมด: 100980ms90 ครั้งติดต่อกัน n=20831325, จำนวนค่าติดต่อกัน: 15; ใช้เวลานาน: 34772ms, รวม: 135752ms91 ครั้งติดต่อกัน n=20831325, จำนวนค่าต่อเนื่อง: 15; ใช้เวลานาน: 34772ms, ทั้งหมด : : 135752ms93 ครั้งติดต่อกัน n=20831325 จำนวนค่าติดต่อกัน: 15; การใช้เวลา: 34772ms, ทั้งหมด: 135752ms94 ครั้งติดต่อกัน n=20831325, จำนวนค่าติดต่อกัน: 15; ใช้เวลานาน: 34772ms, รวม: 135752ms97 ครั้งติดต่อกัน n=20831325, จำนวนค่าต่อเนื่อง: 15; ใช้เวลานาน: 34772ms, ทั้งหมด : : 135752ms98 ครั้งติดต่อกัน n=20831325 จำนวนค่าติดต่อกัน: 15; การใช้เวลา: 34772ms, รวม: 135752ms99 ครั้งติดต่อกัน n=20831325, จำนวนค่าติดต่อกัน: 15; การใช้เวลา: 34773ms, จำนวนทั้งหมด: 135753ms100 ครั้งติดต่อกัน n=20831325, จำนวนค่าติดต่อกัน: 15; ใช้เวลานาน: 34773ms, รวม: 135753ms101 ครั้งติดต่อกัน n = 20831325, จำนวนค่าต่อเนื่อง: 15; ใช้เวลานาน: 34773ms, ทั้งหมด : : 135753ms103 ครั้งติดต่อกัน n=20831325 จำนวนค่าติดต่อกัน: 15; การใช้เวลา: 34773ms, ทั้งหมด: 135753ms104 ครั้งติดต่อกัน n=20831325, จำนวนค่าต่อเนื่อง: 15; การสิ้นเปลืองเวลา: 34773ms, ทั้งหมด: 135753ms105 ครั้งติดต่อกัน n=47326695 จำนวนค่าต่อเนื่องกัน: 5; การใช้เวลา: 319130ms, รวม: 452155ms106 ครั้งติดต่อกัน n=47326695, จำนวนค่าติดต่อกัน: 5; การสิ้นเปลืองเวลา: 319131ms, ทั้งหมด: 452156ms107 ครั้งติดต่อกัน n=47326695 จำนวนค่าติดต่อกัน: 5 ใช้เวลานาน: 319131ms รวม: 452156ms109 ครั้งติดต่อกัน n=47326695 จำนวนค่าต่อเนื่องกัน: 5; ใช้เวลานาน: 319131ms, รวม: 452156ms110 ครั้งติดต่อกัน n=122164749, จำนวนค่าต่อเนื่อง: 1; ใช้เวลานาน: 1395200ms, ทั้งหมด: 1847356ms111 ครั้งติดต่อกัน n=189695661 จำนวนค่าติดต่อกัน: 6 ใช้เวลานาน: 1705936ms รวม: 3553292ms113 ครั้งติดต่อกัน n=189695661 จำนวนค่าติดต่อกัน: 6; ใช้เวลานาน: 1705936ms, ทั้งหมด: 3553292ms115 ครั้งติดต่อกัน n=189695661 จำนวนค่าติดต่อกัน: 6 ใช้เวลานาน: 1705936ms รวม: 3553292ms117 ครั้งติดต่อกัน n=191912785 จำนวนค่าติดต่อกัน: 7; ใช้เวลานาน: 61964ms, ทั้งหมด: 3615256ms118 ครั้งติดต่อกัน n=191912785, จำนวนค่าติดต่อกัน: 7; 3615256ms119 ครั้งติดต่อกัน n=191912785 จำนวนค่าติดต่อกัน: 7; การใช้เวลา: 61964ms, ทั้งหมด: 3615256ms120 ครั้งติดต่อกัน n=191912785, จำนวนค่าต่อเนื่อง: 7; 3615256ms121 ครั้งติดต่อกัน n=191912785 จำนวนค่าติดต่อกัน: 7; ใช้เวลานาน: 61964ms, ทั้งหมด: 3615256ms123 ครั้งติดต่อกัน n=191912785 จำนวนค่าติดต่อกัน: 7; การใช้เวลา: 61964ms, รวม: 3615256ms124 ครั้งติดต่อกัน n=387096135, จำนวนค่าติดต่อกัน: 1; การใช้เวลา: 6650201ms, จำนวนทั้งหมด: 10265457ms----- การรันนี้เสร็จสมบูรณ์แล้ว และค่าถัดไปเกิน 1,000 ครั้ง เวลาที่ไร้ประโยชน์: 0ms รวม: xxxxxx135395ms
- - - - - - ผลลัพธ์ที่ตามมายังไม่ได้รับการคำนวณ
รหัสมีลักษณะดังนี้:
แพ็คเกจ com.test.test.zhihe; นำเข้า java.util.ArrayList; นำเข้า java.util.HashMap; นำเข้า java.util.Iterator; นำเข้า java.util.List; นำเข้า java.util.Map; นำเข้า java.util.Set ;/** * เลขคี่ 6 ตัวติดต่อกัน a, a+2, a+4, a+6, a+8, a+10 เป็นจำนวนประกอบทั้งหมด จงหา a ที่น้อยที่สุด */คลาสสาธารณะ ZhishuTest { /** * พิจารณาว่าตัวเลขเป็นจำนวนประกอบหรือไม่ เปรียบเทียบกับจำนวนเฉพาะ* @param num * @return */ public static boolean He(int num){ // Square root 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; } /** * ฟังก์ชั่นหลัก* @param args */ public static void main(String[] args) { test(); } test() { // เวลาเริ่มต้น long startMillis = System.currentTimeMillis(); // เวลาเสร็จสิ้นล่าสุด long preMillis = System.currentTimeMillis(); // เวลาเสร็จสิ้นนี้ long curMillis = System.currentTimeMillis(); // int lianxu = 1,000; int start = 1; for (int x = 1; x <= lianxu; x++) { ถ้า (ครั้ง > x) { ดำเนินการต่อ; ผ่านไป เข้าสู่วงถัดไป} else { times = x; } List<Map<Integer, Integer>> resList = testTimesHe(x, start, false); หากมีตัวเลข ให้ประมวลผล if(null == resList || resList.isEmpty()){ // ถ้าหาไม่เจอ ก็จะไม่มีอันถัดไป... // การซ้อนลึกๆ น่าขยะแขยงเกินไป - - แบ่ง; } int size = resList.size(); // Traverse Iterator<Map<Integer, Integer>> iteratorR = resList.iterator(); while (iteratorR.hasNext()) { แผนที่<Integer, Integer> map = ( แผนที่<จำนวนเต็ม, จำนวนเต็ม>) 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 + " ms, ทั้งหมด: "+allTimeout+"ms"); // ประมวลผลข้อมูล ข้อมูลที่ได้รับการประมวลผลอย่างตะกละตะกลามจะไม่ได้รับการประมวลผลถ้า (คีย์ > 0 && ค่า > 0){ times = key+1; start = value; } } } } // รวมเวลาที่เสร็จสมบูรณ์ล่าสุด preMillis = System.currentTimeMillis(); } // // เวลาเสร็จสิ้นนี้ curMillis = System.currentTimeMillis(); // long allTimeout = curMillis - startMillis; out.println("การดำเนินการนี้เสร็จสิ้นแล้ว ค่าถัดไปเกิน 100 ครั้ง" + "; เวลาที่ไร้ประโยชน์: " + curTimeout + "ms, รวม: "+allTimeout+"ms"); } /** * * เวลาทดสอบ + 2 คือจำนวนขั้นต่ำ n ของจำนวนคอมโพสิต * @param ครั้ง เวลาในการคำนวณ * @param เริ่มต้นหมายเลขเริ่มต้น * @param onlyStart คำนวณเฉพาะค่าเริ่มต้นเดียวเท่านั้น ใช้สำหรับ การเรียกซ้ำ การเรียกภายนอกควรส่งผ่านใน * @return */ public static List<Map<Integer, Integer>> testTimesHe(int times,int start, boolean onlyStart) { // รายการ<Map<Integer, Integer>> resList= new ArrayList<Map<Integer, Integer>>(); // // การเขียนโปรแกรมป้องกัน if(start < 1){ return resList } if(0 == start % 2 ) { // อย่าจัดการตัวเลขกลับ 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 โดยตรง } สำหรับ (int j = 0; j < ครั้ง; j++) { int n = i + 2*j; // if(!He(n)){ break; // Inner exit} // 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(ครั้ง, ผลลัพธ์); resList.add(resMap); // ลองจำนวนครั้งถัดไป การเรียกซ้ำ จริงๆ แล้ว การเรียกซ้ำนี้สามารถปรับให้เหมาะสมเพิ่มเติมได้ เพียงเพิ่มในครั้งถัดไป - - // startTimes เพิ่มพารามิเตอร์นี้โดยตรง - - การเรียกซ้ำแบบโลภ? // อีกครั้งโดยเริ่มจากตัวเลข int = times +1; List<Map<Integer>> nextList = testTimesHe(t, s, true); // ถ้ามี คือ ตัวเลขของระดับถัดไปจะถูกเพิ่มเข้าไปในผลลัพธ์ปัจจุบัน if(null != nextList && false==nextList.isEmpty()){ resList.addAll(nextList } // แบ่ง; // ทางออกชั้นนอก } } // กลับ resList;
หมายเหตุ: ยังมีช่องว่างให้ปรับปรุง ยินดีแก้ไขในครั้งต่อไป