查找 N 的最大因子,使得 NF 小于 K(Java)10 Sept 2024 | 4 分钟阅读 给定两个数字 N 和 K,我们的任务是确定最小的 X 值,使得 N < X*K。 示例 1 输入 int num = 8 int K = 7 输出 N 的最大因子是 2。 解释 对于给定的数字,小于 K 且能被 N 整除的数字是 1、2 和 4。因此,X 的最小值为 2,使得 8 < 2*7 = 14。因此,N 的最大因子是 2。 示例 2 输入 int num = 999999733, int K = 999999732 输出 N 的最大因子是 999999733。 解释 由于整数 999999733 是一个素数,它可以被 1 和它本身整除;因为 K 小于 999999733。由于 999999733 < 999999733*999999732,可以确定 999999733 是 X 的最小值。因此,N 的最大因子是 999999733。 方法:朴素方法可以使用方程 K * X = N 来表示给定的问题表达式。该方程的主要目标是减小 X。因此,我们必须确定能整除 N 的最大 K。 算法 步骤 1: 初始化变量 k 和 num。 步骤 2: 重复遍历 [1, K]。 步骤 3: 声明用于保存所需响应的临时变量。 步骤 4: 验证 (n % i) = 0 是否对于每个整数 i 都成立。 步骤 4.1: 继续更新 max 变量,该变量跟踪到 i 为止遍历过的 N 的最大除数。 步骤 5: Num/maxi,必须返回该值,是所需的答案。 实施文件名: LargestFactorofN.java 输出 The largest factor of N is 2 复杂度分析 上述代码的时间复杂度为 O(K),空间复杂度为 O(1)。 方法:高效方法此方法通过迭代到数字平方根的因子,有效地确定给定数字 num 的最大因子,该因子小于或等于设定的阈值 K。它通过使用基本的数学特性来实现这一点。 算法 步骤 1: 创建一个函数来确定小于或等于 K 值的最大数字因子。 步骤 2: 创建一个名为 res 的变量来保存结果;它应初始化为 0。 步骤 3: 重复步骤 1 到步骤 j,直到 num 的平方根。 步骤 4: 它通过确定 num 对 j 取模是否等于 0,来确定 j 是否是 num 的因子。 步骤 5: 如果 j 是一个因子,它会将 j 与 K 进行比较。如果 j 小于或等于 K,它会将 res 更新为当前值和 j 中的最大值。 步骤 6: 它还确定 num 除以 j 是否等于或小于 K。如果是这种情况,则表示 num/j 是一个小于或等于 K 的因子,在这种情况下,res 将按需更新。 步骤 7: 最后,函数返回小于或等于 K 的最大因子 (res)。 实施文件名: EfficientLargestFactorN.java 输出 复杂度分析 其中“N”代表输入数字,上述代码的时间复杂度为 O(sqrt(N)),空间复杂度为 O(1)。 下一个主题Java 中的字典序最小回文串 |
在本节中,我们将讨论什么是无平方数,并创建 Java 程序来检查给定的数字是否为无平方数。无平方数程序经常出现在 Java 编码面试和学术界。无平方数是指一个正整数...
阅读 4 分钟
javax.naming.CompositeName 类具有 equals() 函数。CompositeName 类用于通过将此 CompositeName 与作为参数传递的给定对象进行比较,来确定两个对象是否相等。如果对象相等,则 equals() 方法返回 true;否则,它...
阅读 6 分钟
在 Java 中,由 Enumeration 的 Element 方法抛出,表明枚举中没有更多元素了。由以下方法抛出 - Enumeration 接口的 Element() 方法 NamingEnumeration 接口的 () 方法 StringTokenizer 类的 Element() 方法 Iterator 接口的 () 方法 是一个...
阅读 2 分钟
字符串的回文分割意味着将给定字符串分成若干部分,使得从给定字符串形成的所有子字符串本身都是回文。在 Java 的回文分割问题中,我们返回使每个部分都成为回文所需的最小分割次数...
7 分钟阅读
? 在 Java 中从 URL 下载文件是一项相对简单的任务,但有几种方法可以做到。在本文中,我们将讨论两种最常见的方法:使用 URL 和 HttpURLConnection 类,以及使用 Apache...
阅读 6 分钟
二叉树的广度优先遍历在Java中也称为二叉树的层序遍历。对于以下二叉树:层序遍历为:18 20 30 60 34 45 65 12 50 98 82 31 59 71 41 使用递归一种...
阅读 6 分钟
给出了一个数字 n。我们的任务是找出 1 到 n 之间存在的自描述数字。自描述数字 m 是一个数字,它在基数 b 中包含 b 个数字,其中最高有效数字位于 0 位置,...。
5 分钟阅读
二叉搜索树(BST)中节点的内部后继节点是在内部遍历中遇到的节点,其中节点按升序访问:先左子树,然后是根,最后是右子树。确定内部后继节点:如果节点... (省略了其他部分)
阅读 6 分钟
已检查异常是在编译时检查的异常。它也称为编译时异常。Java 编译器强制开发人员处理它。如果可能抛出已检查异常的任何方法没有使用 try-catch 块处理它或使用...声明它。
7 分钟阅读
在 Java 中,复制数组意味着创建一个新数组,并将元素的内容从现有数组传输到新数组。这样做是为了使两个数组可以独立使用而不会相互影响。为什么我们需要复制数组?复制...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India