热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

Java实现的连续奇数(n+2*x)是合数的算法题暴力算法

这篇文章主要介绍了Java实现的连续奇数(n+2*x)是合数的算法题暴力算法,本文包含运算结果和实现代码,需要的朋友可以参考下

连续6个奇数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,总计: 1ms
12次连续n=1329,连续值个数: 6;耗时: 0ms,总计: 1ms
13次连续n=1329,连续值个数: 6;耗时: 0ms,总计: 1ms
14次连续n=1329,连续值个数: 6;耗时: 0ms,总计: 1ms
15次连续n=1329,连续值个数: 6;耗时: 0ms,总计: 1ms
16次连续n=1329,连续值个数: 6;耗时: 0ms,总计: 1ms
17次连续n=9553,连续值个数: 1;耗时: 2ms,总计: 3ms
18次连续n=15685,连续值个数: 4;耗时: 1ms,总计: 5ms
19次连续n=15685,连续值个数: 4;耗时: 1ms,总计: 5ms
20次连续n=15685,连续值个数: 4;耗时: 1ms,总计: 5ms
21次连续n=15685,连续值个数: 4;耗时: 1ms,总计: 5ms
22次连续n=19611,连续值个数: 4;耗时: 2ms,总计: 8ms
23次连续n=19611,连续值个数: 4;耗时: 2ms,总计: 8ms
24次连续n=19611,连续值个数: 4;耗时: 2ms,总计: 8ms
25次连续n=19611,连续值个数: 4;耗时: 2ms,总计: 8ms
26次连续n=31399,连续值个数: 10;耗时: 5ms,总计: 13ms
27次连续n=31399,连续值个数: 10;耗时: 5ms,总计: 13ms
28次连续n=31399,连续值个数: 10;耗时: 5ms,总计: 13ms
29次连续n=31399,连续值个数: 10;耗时: 5ms,总计: 13ms
30次连续n=31399,连续值个数: 10;耗时: 5ms,总计: 13ms
31次连续n=31399,连续值个数: 10;耗时: 5ms,总计: 13ms
32次连续n=31399,连续值个数: 10;耗时: 5ms,总计: 13ms
33次连续n=31399,连续值个数: 10;耗时: 5ms,总计: 13ms
34次连续n=31399,连续值个数: 10;耗时: 5ms,总计: 13ms
35次连续n=31399,连续值个数: 10;耗时: 5ms,总计: 13ms
36次连续n=155923,连续值个数: 7;耗时: 92ms,总计: 105ms
37次连续n=155923,连续值个数: 7;耗时: 92ms,总计: 105ms
38次连续n=155923,连续值个数: 7;耗时: 92ms,总计: 105ms
39次连续n=155923,连续值个数: 7;耗时: 92ms,总计: 105ms
40次连续n=155923,连续值个数: 7;耗时: 92ms,总计: 105ms
41次连续n=155923,连续值个数: 7;耗时: 92ms,总计: 105ms
42次连续n=155923,连续值个数: 7;耗时: 93ms,总计: 106ms
43次连续n=360655,连续值个数: 5;耗时: 243ms,总计: 349ms
44次连续n=360655,连续值个数: 5;耗时: 243ms,总计: 349ms
45次连续n=360655,连续值个数: 5;耗时: 243ms,总计: 349ms
46次连续n=360655,连续值个数: 5;耗时: 243ms,总计: 349ms
47次连续n=360655,连续值个数: 5;耗时: 243ms,总计: 349ms
48次连续n=370263,连续值个数: 8;耗时: 14ms,总计: 363ms
49次连续n=370263,连续值个数: 8;耗时: 14ms,总计: 363ms
50次连续n=370263,连续值个数: 8;耗时: 14ms,总计: 363ms
51次连续n=370263,连续值个数: 8;耗时: 14ms,总计: 363ms
52次连续n=370263,连续值个数: 8;耗时: 14ms,总计: 363ms
53次连续n=370263,连续值个数: 8;耗时: 14ms,总计: 363ms
54次连续n=370263,连续值个数: 8;耗时: 14ms,总计: 363ms
55次连续n=370263,连续值个数: 8;耗时: 14ms,总计: 363ms
56次连续n=492115,连续值个数: 1;耗时: 185ms,总计: 548ms
57次连续n=1349535,连续值个数: 2;耗时: 1854ms,总计: 2402ms
58次连续n=1349535,连续值个数: 2;耗时: 1854ms,总计: 2402ms
59次连续n=1357203,连续值个数: 7;耗时: 22ms,总计: 2424ms
60次连续n=1357203,连续值个数: 7;耗时: 22ms,总计: 2424ms
61次连续n=1357203,连续值个数: 7;耗时: 22ms,总计: 2424ms
62次连续n=1357203,连续值个数: 7;耗时: 22ms,总计: 2424ms
63次连续n=1357203,连续值个数: 7;耗时: 22ms,总计: 2424ms
64次连续n=1357203,连续值个数: 7;耗时: 22ms,总计: 2424ms
65次连续n=1357203,连续值个数: 7;耗时: 22ms,总计: 2424ms
66次连续n=2010735,连续值个数: 8;耗时: 1889ms,总计: 4313ms
67次连续n=2010735,连续值个数: 8;耗时: 1889ms,总计: 4313ms
68次连续n=2010735,连续值个数: 8;耗时: 1889ms,总计: 4313ms
69次连续n=2010735,连续值个数: 8;耗时: 1889ms,总计: 4313ms
70次连续n=2010735,连续值个数: 8;耗时: 1889ms,总计: 4313ms
71次连续n=2010735,连续值个数: 8;耗时: 1889ms,总计: 4313ms
72次连续n=2010735,连续值个数: 8;耗时: 1889ms,总计: 4313ms
73次连续n=2010735,连续值个数: 8;耗时: 1890ms,总计: 4314ms
74次连续n=4652355,连续值个数: 3;耗时: 10583ms,总计: 14897ms
75次连续n=4652355,连续值个数: 3;耗时: 10583ms,总计: 14897ms
76次连续n=4652355,连续值个数: 3;耗时: 10583ms,总计: 14897ms
77次连续n=17051709,连续值个数: 13;耗时: 86082ms,总计: 100979ms
78次连续n=17051709,连续值个数: 13;耗时: 86082ms,总计: 100979ms
79次连续n=17051709,连续值个数: 13;耗时: 86082ms,总计: 100979ms
80次连续n=17051709,连续值个数: 13;耗时: 86082ms,总计: 100979ms
81次连续n=17051709,连续值个数: 13;耗时: 86082ms,总计: 100979ms
82次连续n=17051709,连续值个数: 13;耗时: 86082ms,总计: 100979ms
83次连续n=17051709,连续值个数: 13;耗时: 86082ms,总计: 100979ms
84次连续n=17051709,连续值个数: 13;耗时: 86082ms,总计: 100979ms
85次连续n=17051709,连续值个数: 13;耗时: 86083ms,总计: 100980ms
86次连续n=17051709,连续值个数: 13;耗时: 86083ms,总计: 100980ms
87次连续n=17051709,连续值个数: 13;耗时: 86083ms,总计: 100980ms
88次连续n=17051709,连续值个数: 13;耗时: 86083ms,总计: 100980ms
89次连续n=17051709,连续值个数: 13;耗时: 86083ms,总计: 100980ms
90次连续n=20831325,连续值个数: 15;耗时: 34772ms,总计: 135752ms
91次连续n=20831325,连续值个数: 15;耗时: 34772ms,总计: 135752ms
92次连续n=20831325,连续值个数: 15;耗时: 34772ms,总计: 135752ms
93次连续n=20831325,连续值个数: 15;耗时: 34772ms,总计: 135752ms
94次连续n=20831325,连续值个数: 15;耗时: 34772ms,总计: 135752ms
95次连续n=20831325,连续值个数: 15;耗时: 34772ms,总计: 135752ms
96次连续n=20831325,连续值个数: 15;耗时: 34772ms,总计: 135752ms
97次连续n=20831325,连续值个数: 15;耗时: 34772ms,总计: 135752ms
98次连续n=20831325,连续值个数: 15;耗时: 34772ms,总计: 135752ms
99次连续n=20831325,连续值个数: 15;耗时: 34773ms,总计: 135753ms
100次连续n=20831325,连续值个数: 15;耗时: 34773ms,总计: 135753ms
101次连续n=20831325,连续值个数: 15;耗时: 34773ms,总计: 135753ms
102次连续n=20831325,连续值个数: 15;耗时: 34773ms,总计: 135753ms
103次连续n=20831325,连续值个数: 15;耗时: 34773ms,总计: 135753ms
104次连续n=20831325,连续值个数: 15;耗时: 34773ms,总计: 135753ms
105次连续n=47326695,连续值个数: 5;耗时: 319130ms,总计: 452155ms
106次连续n=47326695,连续值个数: 5;耗时: 319131ms,总计: 452156ms
107次连续n=47326695,连续值个数: 5;耗时: 319131ms,总计: 452156ms
108次连续n=47326695,连续值个数: 5;耗时: 319131ms,总计: 452156ms
109次连续n=47326695,连续值个数: 5;耗时: 319131ms,总计: 452156ms
110次连续n=122164749,连续值个数: 1;耗时: 1395200ms,总计: 1847356ms
111次连续n=189695661,连续值个数: 6;耗时: 1705936ms,总计: 3553292ms
112次连续n=189695661,连续值个数: 6;耗时: 1705936ms,总计: 3553292ms
113次连续n=189695661,连续值个数: 6;耗时: 1705936ms,总计: 3553292ms
114次连续n=189695661,连续值个数: 6;耗时: 1705936ms,总计: 3553292ms
115次连续n=189695661,连续值个数: 6;耗时: 1705936ms,总计: 3553292ms
116次连续n=189695661,连续值个数: 6;耗时: 1705936ms,总计: 3553292ms
117次连续n=191912785,连续值个数: 7;耗时: 61964ms,总计: 3615256ms
118次连续n=191912785,连续值个数: 7;耗时: 61964ms,总计: 3615256ms
119次连续n=191912785,连续值个数: 7;耗时: 61964ms,总计: 3615256ms
120次连续n=191912785,连续值个数: 7;耗时: 61964ms,总计: 3615256ms
121次连续n=191912785,连续值个数: 7;耗时: 61964ms,总计: 3615256ms
122次连续n=191912785,连续值个数: 7;耗时: 61964ms,总计: 3615256ms
123次连续n=191912785,连续值个数: 7;耗时: 61964ms,总计: 3615256ms
124次连续n=387096135,连续值个数: 1;耗时: 6650201ms,总计: 10265457ms
----- 
本次已经跑完了,下一个值超出了1000次;无用耗时: 0ms,总计: xxxxxx135395ms

。。。。。。 后面的结果还没算出来

代码如下所示:

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;

/**
 * 连续6个奇数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;
 }

 /**
 * 主函数
 * @param args
 */
 public static void main(String[] args) {
 test();
 }
 public static void 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){
  continue;// 跳过,进入下一次循环
  } else {
  times = x;
  }
  List> resList = testTimesHe(x, start, false);
  //
  // 如果有数字,则进行处理
  if(null == resList || resList.isEmpty()){
  // 找不到,就不会再有下一个了...
  // 深层嵌套太恶心了。。。
  break;
  }
  int size = resList.size();
  // 遍历
  Iterator> iteratorR = resList.iterator();
  while (iteratorR.hasNext()) {
  Map map = (Map) iteratorR.next();
  //
  if(null != map && !map.isEmpty()){
   // Map遍历太恶心了.烂Java
   Set keys= map.keySet();
   Iterator iteratorK = keys.iterator();
   if(iteratorK.hasNext()){
   Integer key = iteratorK.next(); // 次数
   Integer value = 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");
   // 处理数据,贪婪处理过的就不处理了
   if(key > 0 && value > 0){
    times = key+1;
    start = value;
   }
   }
  }
  }
  // 计入上次完成时间
  preMillis = System.currentTimeMillis();
 }
 //
 // 本次完成时间
 curMillis = System.currentTimeMillis();
 //
 long allTimeout = curMillis - startMillis;
 long curTimeout = curMillis - preMillis;
 System.out.println("本次已经跑完了,下一个值超出了100次 " +
  ";无用耗时: " + curTimeout + "ms,总计: "+allTimeout+"ms");
 }
 
 
 /**
 * 
 * 测试 times 次的+2都是合数的最小n
 * @param times 计算次数
 * @param start 起始数字
 * @param onlyStart 只计算单个start值.用于递归.外部调用应该传入
 * @return
 */
 public static List> testTimesHe(int times,int start, boolean onlyStart) {
 //
 List> resList= new ArrayList>();
 //
 // 防御式编程
 if(start <1){
  return resList;
 }
 if(0 == start % 2){ // 不处理偶数
  return resList;
 }
 if(times <1){
  times = 1;
 }
 //
 int result = -1;
 //
 for (int i = start; i  start){ // start 不满足,就直接
  return resList;
  }
  for (int j = 0; j  0){
  //
  //System.out.println("result = "+result);
  //
  Map resMap = new HashMap();
  resMap.put(times, result);
  resList.add(resMap);
  // 尝试下一个次数,递归; 其实这个递归还可以继续优化一点; 贪婪算法,直接加下一次。。。
  // startTimes, 直接加这个参数。。。贪婪递归&#63;
  // 多1次,从result这个数开始
  int t = times +1;
  int s = result;
  List> nextList = testTimesHe(t, s, true);
  // 如果有下一层的数字,则加入到当前结果
  if(null != nextList && false==nextList.isEmpty()){
   resList.addAll(nextList);
  }
  
  //
  break;// 外层退出
  }
 }
 //
 return resList;
 }
}

说明: 还有改进空间,欢迎下次修正


推荐阅读
  • 题目描述:给定n个半开区间[a, b),要求使用两个互不重叠的记录器,求最多可以记录多少个区间。解决方案采用贪心算法,通过排序和遍历实现最优解。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 深度学习理论解析与理解
    梯度方向指示函数值增加的方向,由各轴方向的偏导数综合而成,其模长表示函数值变化的速率。本文详细探讨了导数、偏导数、梯度等概念,并结合Softmax函数、卷积神经网络(CNN)中的卷积计算、权值共享及池化操作进行了深入分析。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 自学编程与计算机专业背景者的差异分析
    本文探讨了自学编程者和计算机专业毕业生在技能、知识结构及职业发展上的不同之处,结合实际案例分析两者的优势与劣势。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 深入浅出:Google工程师的算法学习指南
    通过Google工程师的专业视角,带你系统掌握算法的核心概念与实践技巧。 ... [详细]
  • 本文深入探讨了 Python 列表切片的基本概念和实际应用,通过具体示例展示了不同切片方式的使用方法及其背后的逻辑。 ... [详细]
  • 本文详细介绍了K-Medoids聚类算法,这是一种基于划分的聚类方法,适用于处理大规模数据集。文章探讨了其优点、缺点以及具体实现步骤,并通过实例进行说明。 ... [详细]
  • 本文探讨如何利用人工智能算法自动区分网页是详情页还是列表页,介绍具体的实现思路和技术细节。 ... [详细]
  • 本文探讨了 C++ 中普通数组和标准库类型 vector 的初始化方法。普通数组具有固定长度,而 vector 是一种可扩展的容器,允许动态调整大小。文章详细介绍了不同初始化方式及其应用场景,并提供了代码示例以加深理解。 ... [详细]
  • 本实验主要探讨了二叉排序树(BST)的基本操作,包括创建、查找和删除节点。通过具体实例和代码实现,详细介绍了如何使用递归和非递归方法进行关键字查找,并展示了删除特定节点后的树结构变化。 ... [详细]
author-avatar
紫云轻梦lyq
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有