最小公倍和最大公约数的一般解决方案

简介: 最小公倍和最大公约数的一般解决方案

对于最大公约数和最小公倍数的解法,BigInteger API提供了一个一般性的解决方案,可以根据例子来理解使用:

示例:


给你一个整数数组 nums 和一个整数 k ,
请你统计并返回 nums 的 子数组 中满足 元素最小公倍数为 k 的子数组数目。
子数组 是数组中一个连续非空的元素序列。
数组的最小公倍数 是可被所有数组元素整除的最小正整数。
输入:nums = [3,6,2,7,1], k = 6
输出:4
解释:以 6 为最小公倍数的子数组是:
- [3,6,2,7,1]  (3,6)
- [3,6,2,7,1].  (3,6,2)
- [3,6,2,7,1].  (6)
- [3,6,2,7,1].  (6,2)

解法:


import java.math.BigInteger;
class Solution {
    public int subarrayLCM(int[] nums, int k) {
        int res = 0;
        for (int i = 0; i < nums.length; i++) {
            // 初始化为 1,任何数与 1 的 lcm 都是它本身
            BigInteger lcm = BigInteger.ONE;
            for (int j = i; j < nums.length; j++) {
                // lcm(a, b) = a * b / gcd(a, b)
                lcm = lcm.multiply(BigInteger.valueOf(nums[j])).divide(lcm.gcd(BigInteger.valueOf(nums[j])));
                // 担心溢出就用 lcm.doubleValue()
                if (lcm.intValue() == k) res++;
            }
        }
        return res;
    }
}

思路和主要方法:


最小公倍 = 两数相乘/最大公约
API方法:
  a. this.gcd(val):返回最大公约数 gcd(this,val)
  b. this.multiply(val): 返回两数乘积 this * val
  c. this.divide(val): 返回两数相除的结果 this / val
相关文章
|
JavaScript 前端开发 Serverless
Vue.js的介绍、原理、用法、经典案例代码以及注意事项
Vue.js的介绍、原理、用法、经典案例代码以及注意事项
|
2月前
|
机器学习/深度学习 自然语言处理 供应链
大模型应用:销量预测升级:Qwen大模型让时序分析从算数值到给建议.82
本文提出“会说话的时序分析系统”,融合ARIMA、Prophet等专业预测算法与大模型,实现从冰冷数值到自然语言洞察的跃迁:算法精准算未来,大模型解读原因、生成可落地建议,让时序数据真正成为懂业务、会决策的智能助手。
448 3
|
2月前
|
存储 缓存 人工智能
大模型应用:快速搭建轻量级智能体:从模型下载到图文输出简单实践.75
本文介绍如何用轻量级Qwen1.5-1.8B-Chat模型(单卡4G显存或CPU即可运行)搭建本地智能体:从高速下载缓存、文本对话交互,到解析用户指令生成绘图参数,并用Pillow绘制文字海报、几何图形、渐变/抽象艺术图,全程代码清晰、开箱即用,适合大模型入门实操。
352 7
|
3月前
|
Java 关系型数据库 MySQL
服务注册发现深度拆解:Nacos vs Eureka 核心原理、架构选型与生产落地
本文深度解析微服务注册发现核心原理,对比Eureka(AP优先、简单稳定)与Nacos(AP/CP双模、功能丰富、性能更强)的架构、机制与适用场景,涵盖6大核心能力、集群同步、健康检查、服务发现模式等,并提供生产级代码实践与选型避坑指南。
473 2
|
10月前
|
人工智能 文字识别 监控
抖音一键跳转微信加好友如何实现?
在2025年的移动互联网生态中,抖音日活用户已突破8亿,微信月活达13亿,两大平台间的用户导流
|
9月前
|
自然语言处理 IDE 开发工具
Xcode 26.0.1 (17A400) 发布 - Apple 平台 IDE
Xcode 26.0.1 (17A400) 发布 - Apple 平台 IDE
777 1
|
12月前
|
文字识别 监控 Python
顺丰骑士抢单辅助免封号,抢单加速器永久免费版,美团饿了么蜂鸟货拉拉
这是一款基于Python的订单自动检测与抢单工具,集成图像预处理、OCR文字识别、订单解析及条件判断功能。程序通过Tesseract OCR引擎提取指定屏幕区域(如订单列表)
|
12月前
|
人工智能 数据可视化 物联网
物流轨迹订阅查询API调用全流程
本文介绍了物流轨迹订阅查询 API 从传统物流到智慧物流的转型价值与应用。该接口支持主流快递公司,通过标准化数据格式返回物流状态与详细路径信息,助力物流可视化、智能调度和精准客服。核心功能包括基于快递单号查询物流状态与轨迹,提供如快递公司、运单号、签收状态等关键信息。同时,文章还提供了调用流程及 Python 示例代码,便于开发者集成使用。未来,随着 AI 和物联网技术的发展,物流轨迹查询将向智慧物流生态演进,进一步提升行业效率与用户体验。
1211 0
|
传感器 监控 搜索推荐
物联网技术在智能家居中的应用:技术革新与未来展望
【7月更文挑战第21天】物联网技术在智能家居中的应用已经取得了显著的成效,并展现出广阔的发展前景。通过实现设备集成、远程控制与监控、能源管理与节能减排等功能,物联网技术为智能家居系统带来了诸多优势和创新点。未来,随着技术的不断进步和市场的不断扩展,智能家居将更加智能化、自动化和人性化,成为我们生活中不可或缺的一部分。
1343 2
poi在指定位置插入图片并浮动
在使用poi操作docx模板文件时,poi直接插入图片是插入内嵌图片 这个图片是占位置的。
1356 0