java中的gcd

简介: java中的gcd

java中有很多已经实现的方法,不需要我们额外的处理,即已经有了最优解,其中一个便是gcd(greatest common divisor,最大公约数)。

  • 说明
  • java.math.BigInteger.gcd(BigInteger val) 
  • 示例


// create 3 BigInteger objects
BigInteger bi1, bi2, bi3;
// assign values to bi1, bi2
bi1 = new BigInteger("18");
bi2 = new BigInteger("24");
// assign gcd of bi1, bi2 to bi3
bi3 = bi1.gcd(bi2);
String str = "GCD of " + bi1 + " and " + bi2 + " is " +bi3;
// print bi3 value
System.out.println( str );
  • 结果


GCD of 18 and 24 is 6


  • 力扣相关(6224.最大公因数等于 K 的子数组数目


给你一个整数数组 nums 和一个整数 k ,
请你统计并返回 nums 的子数组中元素的最大公因数等于 k 的子数组数目。
子数组 是数组中一个连续的非空序列。
  • 解答


// gcd暴力求解
import java.math.BigInteger;
class Solution {
  public int subarrayGCD(int[] nums, int k) {
    int count = 0;
    for (int i = 0; i < nums.length; i++) {
      BigInteger gcd = BigInteger.ZERO;
      for (int j = i; j < nums.length; j++) {
        count += (gcd = gcd.gcd(BigInteger.valueOf(nums[j]))).intValue() == k ? 1 : 0;
      }
    }
    return count;
  }
}
相关文章
|
存储 算法 Serverless
解决哈希冲突的方式
解决哈希冲突的方式
361 0
|
缓存 算法 调度
数据结构之 - 双端队列数据结构详解: 从基础到实现
数据结构之 - 双端队列数据结构详解: 从基础到实现
761 5
|
7月前
|
Java 编译器 应用服务中间件
为什么说 Java 语言编译与解释并存的原因
在编程语言的世界里,Java以其独特的“编译与解释并存”特性独树一帜。这一特性不仅赋予了Java强大的跨平台能力,还使其在性能和灵活性上达到了很好的平衡。接下来,我们将深入探讨Java语言这一特性的本质、原理以及在实际应用中的体现。
174 6
|
11月前
|
算法 编译器 C++
【狂热算法篇】探秘图论之Dijkstra 算法:穿越图的迷宫的最短路径力量(通俗易懂版)
【狂热算法篇】探秘图论之Dijkstra 算法:穿越图的迷宫的最短路径力量(通俗易懂版)
|
Dubbo 网络协议 Java
性能基础之常见RPC框架浅析
【4月更文挑战第23天】性能基础之常见RPC框架浅析
755 1
性能基础之常见RPC框架浅析
|
缓存 NoSQL Java
【Redis】5、Redis 的分布式锁、Lua 脚本保证 Redis 命令的原子性
【Redis】5、Redis 的分布式锁、Lua 脚本保证 Redis 命令的原子性
946 0
|
Linux
查看服务器的配置,系统,cpu等信息
查看服务器的配置,系统,cpu等信息
4004 8
|
机器学习/深度学习 人工智能 算法
2024 蓝桥杯本科B组试题
2024 蓝桥杯本科B组试题
439 0
|
Cloud Native 文件存储 数据库
《阿里云产品四月刊》—CPFS 智算版数据流动(1)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
230 1