题目描述

求n(n <= 50)个数的最小公倍数。

输入

输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。

输出

为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。

样例输入

2 4 6

3 2 5 7

样例输出

12

70

在数学上,我们求几个数的最小公倍数的方法是对他们分解质因数,然后将他们的质因数相乘,如果有相同的质因数则乘的时候乘该共有质因数的最高次幂项,这种方法显然不适合写程序解题,我们考虑另一种方法。公式法,有这样一个公式:x*y = gcd *lcm,即是x y为要求最小公倍数的两个数,lcm代表最小公倍数,gcd代表最大公约数。将公式变形可得lcm = x*y/gcd,我们就可以利用这个公式求lcm。

求gcd的方法很多,可以手写一个函数gcd()利用辗转相除法求,由于这里是解题,我们可以直接使用G++编译器自带的 __gcd(int,int)函数来求,返回值即是这两个数的最大公约数,使用时需要包含头文件#include,这是c++的头文件,另外,这个函数在devc++里可用,code::blocks应该也可用,但是vs里是用不了这个函数的,请自行实现一个。

那么我们理一下写程序的思路,首先我们要用一个数组储存要求的几个数,然后写个函数循环求gcd,这里我曾犯了一个错,我把求lcm和gcd的过程分开了,就是先对这n个数求lcm,然后统一求gcd,这是错误的。正确的做法是,假如传进来n个数a b c d e....,我们应该先对a b求lcm然后求a b的gcd,再用这个结果(a b的gcd)和c一起求gcd,再用结果和d一起求gcd,以此类推。如果担心溢出问题可以将公式调整一下求值顺序,lcm = x/gcd*y,对这题而言多此一举,题目已经说明结果为32位整数。

下面是我的题解代码:

#include

#include

using namespace std;

int main(){

int n,a;

while(scanf("%d",&n) != EOF){

int arr[n];

for(int i=0;i

scanf("%d",&arr[i]);

}

a = arr[0];

if(n == 1){

printf("%d\n",a);

continue;

}

for(int i=1;i

a = a/__gcd(a,arr[i])*arr[i];

}

printf("%d\n",a);

}

return 0;

}

这份代码提交OJ已AC。

求n个数的公倍数java,求N个数的最小公倍数 - osc_n6euf5h6的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. java知识理论_JAVA理论知识 - OSC_rnoszD的个人空间 - OSCHINA - 中文开源技术交流社区...

    1. final关键字可以用来修饰什么?分别起什么作用? a) final可以修饰类,这样的类不能被继承. b) final可以修饰方法,这样的方法不能被重写. c) final可以修饰变量,这样的变 ...

  2. java诸神之战游戏_mj回溯算法 - osc_7bgz0no1的个人空间 - OSCHINA - 中文开源技术交流社区...

    1)js版本 ​ /** * 基本思路: * 回溯法: 先挑选中将,再依次拆接出3个,3个的...直到结束,那么说明当前可以胡牌 */ let mahjong = [ "1T", ...

  3. java 的“mwq”_java的对象模型 - osc_mwqvsfzo的个人空间 - OSCHINA - 中文开源技术交流社区...

    java中的对象在内存中,究竟是怎样一种存在? 这篇随笔,我们就来一探究竟.可能不够深入,但是我们把理解到位,深入到我们需要的程度这样即可. 先来看下jvm的内存模型: 程序计数器 虚拟机栈和本地方法 ...

  4. java 0l是多少_Java 构造器 - osc_0ltyoebk的个人空间 - OSCHINA - 中文开源技术交流社区...

    Java 基础构造器 构造器: 构造对象. 1.构造方法的名字必须和类名字保持一致. 2.构造方法没有返回类型.(不是没有返回值!!!!!!!!!!!!!) 3.构造方法可以定义参数,也可以不定义,参 ...

  5. java课程总结_Java课程总结 - osc_uyb9f22c的个人空间 - OSCHINA - 中文开源技术交流社区...

    总结:已经学了一个学期的Java,虽然在课堂上面还是很认真的听讲,但在课后,基本上没有复习与巩固,导致感觉没有C语言学的好,最后的面试结果也不是很令人满意.在以后的学习中,要改变学习方式.做什么事都要 ...

  6. java hdms_网盘预研 - ZICK_ZEON的个人空间 - OSCHINA - 中文开源技术交流社区

    调研原型 1.seafile(python) 协议:GPL V3.0 2.kodExplorer (php) 协议:GPL V3.0 3.owncloud(php) 协议:GPL V3.0 4.kif ...

  7. java关键字汉化_Java关键字 - 乱流的个人空间 - OSCHINA - 中文开源技术交流社区

    static关键字 (1)静态的意思.可以修饰成员变量和成员方法. (2)静态的特点: A:随着类的加载而加载 B:优先与对象存在 C:被类的所有对象共享 这其实也是我们判断该不该使用静态的依据. 举 ...

  8. java成果_java学习成果1 - chenxiao60的个人空间 - OSCHINA - 中文开源技术交流社区

    //我的第一个java程序 /**the first thinking in java example program * display a string and today's date * @a ...

  9. java 最小众倍数_c学习 - osc_p1q9onsn的个人空间 - OSCHINA - 中文开源技术交流社区...

    ** 初学C+交流 ** 某次培新题(仅供参考) 1.一般交换机会处于哪一层?( B ) A.物理层 B.数据链路层 C.网络层 D.传输层 2.表示关系上的a>=b>=c的C语言表达式的 ...

最新文章

  1. R语言数据热力图绘制实战(基于原生R函数、ggplot2包、plotly包)
  2. iOS10 UI教程视图的中心位置
  3. wget java 1.7_linux下安装和配置jdk1.7
  4. 服务器的图片无法显示,服务器的图片无法显示
  5. 您访问的网页出错了! 网络连接异常、网站服务器失去响应_数据分析系列——静态网页爬虫进阶(requests)...
  6. oracle之高级子查询之课后练习
  7. python信息管理系统实战_最新python入门+进阶+实战课堂教学管理系统开发全套完整版...
  8. 《红楼梦》告诉你,什么才是真正的教养
  9. 手机端公告文本回滚(简单的jq代码)
  10. 解决Mac装上Jetbrain系列软件(Pycharm/Idea)破解包无效导致软件启动报错
  11. FAL风控培训「六大场景下,模型分数如何应用?」
  12. mysql如何查看dbid_如何获得数据库的DBID
  13. 大数据中数据挖掘的基本步骤
  14. MLDN 五子棋。笔记
  15. 论文阅读翻译笔记之Incentives build robustness in BitTorrent
  16. 如何保证投票公平_怎样设置投票活动规则才能保持公平性呢?
  17. speedoffice(PPT)怎么将背景设置为渐变背景
  18. 数据库迁移工具Kettle连接Mysql数据库报错:Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the解决
  19. [HCIP]MPLS解决路由黑洞
  20. 降维之主成分分析法(PCA)

热门文章

  1. unity 皮肤材质效果实现分析
  2. iPhone手机定电流维修
  3. 【医疗健康项目】传智健康项目(四)
  4. Uncaught TypeError: Cannot read properties of undefined (reading ‘MethodInfo‘)
  5. qt中模态对话框和非模态对话框
  6. 淘宝4月推虚假交易新规 违规或受48分重罚
  7. 用户画像大数据解决方案-脑图(电商行业)
  8. 基于Zookeeper实现配置中心
  9. 电脑经常蓝屏要怎么解决?有什么简单的解决方法么?
  10. 国密算法-SM4加解密工具类