0

0

给定数组中能整除每个元素的最小整数 > 1:使用C++

WBOY

WBOY

发布时间:2023-08-26 21:53:12

|

793人浏览过

|

来源于tutorialspoint

转载

给定数组中能整除每个元素的最小整数 > 1:使用c++

在本文中,我们给出了一个整数数组,并且我们必须找到大于1的最小数,该数能够整除数组中的所有元素。例如,让我们考虑一个示例数组[30, 90, 15, 45, 165]。

vector arr = {30, 90, 15, 45, 165};
result = solve(arr);

现在我们可以找到数组的最大公约数(GCD)。如果结果为1,这意味着只有1能够整除整个数组,我们可以返回-1或者"Not possible."。如果结果是一个整数,那么这个整数能够整除整个数组。然而,这个整数可能不是能够整除整个数组的最小整数。有趣的是,这个整数的因子也能够整除整个数组,这是有道理的。所以,如果我们能够找到这个整数(GCD)的最小因子,我们就得到了能够整除整个数组的最小整数。所以,简而言之,我们需要找到数组的最大公约数(GCD),然后最小因子就是我们的答案。

Example

的中文翻译为:

示例

以下的C++代码可以找到一个大于1的最小整数,该整数可以整除数组中的所有元素。这可以通过找到元素列表的最大公约数来实现 -

#include 
#include 
#include 
using namespace std;
int divisor(int x) {
   if (x%2 == 0) {
      return 2;
   }
   for (int i=3;i*i<=x;i+=2) {
      if (x%i == 0) {
         return i;
      }
   }
   return x;
}
int solve(vector arr) {
   int gcd = 0;
   for (int i=0;i arr = {30, 90, 15, 45, 165};
   cout << solve(arr);
   return 0;
}

输出

3

Example

的中文翻译为:

示例

如果有很多查询,找到数字的质因数将会重复。使用筛法,我们可以计算数字的质因数。

PhotoG
PhotoG

PhotoG是全球首个内容营销端对端智能体

下载

立即学习C++免费学习笔记(深入)”;

在C++中,找到大于1的最小数的另一种实现方法如下:

#include 
#include 
#include 
using namespace std;
const int MAX = 100005;
vector prime(MAX, 0);
void sieve() {
   prime[0] = 1;
   prime[1] = -1;
   for (int i=2; i*i arr) {
   int gcd = 0;
   for (int i=0; i arr = { 30, 90, 15, 45, 165 };
   cout << solve(arr);
   return 0;
}

输出

3

结论

我们使用了sqrt(n)方法来获取最小因子。这可以进行优化,我留给你去尝试。时间复杂度为O(sqrt(n))。在第二种方法中,时间复杂度将是筛法的时间复杂度,即O(nlog(log(n)))。请注意,我们可以根据我们设置的MAX全局变量来找到筛法的上限。

c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

84

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

24

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

56

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

26

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号