最小公倍数

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
 
描述
为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致。
但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多。
事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。
 
我们希望寻找到能除尽1至n的的每个数字的最小整数m.
 
输入
多组测试数据(少于500组)。
每行只有一个数n(1<=n<=100).
输出
输出相应的m。
样例输入
2
3
4
样例输出
2
6
12

#include <iostream>
#include <cstring>
using namespace std;

const int m=105,Max=1000;
int a[m],b[Max];
int main()
{
for(int i=1;i<m;++i)//下标与对应的数组a中的值相对应
a[i]=i;

for(int i=2;i<m;++i)//求1~n的公倍数,本可直接求n!就好,但要求最小,所以要除去
for(int j=i+1;j<m;++j)//重复的因子。例:n==4,1*2*3*4=24,但是4=2*2,所以,
if(a[j]%a[i]==0) //写成1*2*3*2=12,所以,这块代码是要把重复的因子去掉。
a[j]/=a[i]; //把重复的数字去掉之后剩下的数字连乘就可以了。

int n;
while(cin>>n)
{
memset(b,0,sizeof(b));
b[0]=1;//b数组存最后连乘的结果
int digit=1;//最后乘积的位数,刚开始肯定是一位。
for(int i=2;i<=n;++i)//也可以从1开始。但是1乘以任何数都是1
{
int rem=0;//余数
for(int j=0;j<digit;++j)
{
int result=b[j]*a[i]+rem;//b数组存放的是最后结果。ab*c
b[j]=result%10; //b*c的结果+进位存放于b[j]中又产生新的进位
rem=result/10; //然后a*c的结果+新的进位,
}
while(rem) //处理a*c的结果+新的进位
{
b[digit]=rem%10;
rem/=10;
digit++;
}
}

for(int j=digit-1;j>=0;--j)//由于下标从低到高存放的是个.十.百.千.万....
cout<<b[j]; //所以倒序输出
cout<<endl;
}
return 0;
}

nyoj 最小公倍数的更多相关文章

  1. nyoj 517 最小公倍数 【java睑板】

    我写了一个gcd TL该.然后调用math内gcd,AC该... 思维:它是采取n前面的最小公倍数和n求 1~n的最小公倍数 代码: import java.util.Scanner; import ...

  2. NYOJ-517 最小公倍数 TLE 分类: NYOJ 2013-12-29 14:49 253人阅读 评论(0) 收藏

    #include <stdio.h> int main(){ int num[101]={0}; int result[21]={0}; int sum[101][21]={0}; int ...

  3. NYOJ 1007

    在博客NYOJ 998 中已经写过计算欧拉函数的三种方法,这里不再赘述. 本题也是对欧拉函数的应用的考查,不过考查了另外一个数论基本定理:如何用欧拉函数求小于n且与n互质所有的正整数的和. 记eule ...

  4. NYOJ 998

    这道题是欧拉函数的使用,这里简要介绍下欧拉函数. 欧拉函数定义为:对于正整数n,欧拉函数是指不超过n且与n互质的正整数的个数. 欧拉函数的性质:1.设n = p1a1p2a2p3a3p4a4...pk ...

  5. 求N个数的最大公约数和最小公倍数(转)

    除了分解质因数,还有另一种适用于求几个较小数的最大公约数.最小公倍数的方法 下面是数学证明及算法实现 令[a1,a2,..,an] 表示a1,a2,..,an的最小公倍数,(a1,a2,..,an)表 ...

  6. C语言 · 最小公倍数

    问题描述 编写一函数lcm,求两个正整数的最小公倍数. 样例输入 一个满足题目要求的输入范例.例:3 5 样例输出 与上面的样例输入对应的输出.例: 数据规模和约定 输入数据中每一个数的范围. 例:两 ...

  7. Java程序设计之最大公约数和最小公倍数

    题目:输入两个正整数number1和number2,求其最大公约数和最小公倍数. 算法:较大数和较小数取余,较小数除余数,一直到余数为0时,为最大公约数(辗转相除法):最大公倍数numbe1*numb ...

  8. NYOJ 333

    http://www.cppblog.com/RyanWang/archive/2009/07/19/90512.aspx?opt=admin 欧拉函数 E(x)表示比x小的且与x互质的正整数的个数. ...

  9. 最大公约数和最小公倍数--java实现

    代码: //最大公约数 public int gcd(int p,int q){ if(q == 0) return p; return gcd(q, p % q); } //最小公倍数 public ...

随机推荐

  1. 『Scipy』常用方法记录

    优化器使用教程 J = lambda wb: self.get_cost_grad(wb, X, Y_one_hot) theta = self.wb_init(X,Y_one_hot) result ...

  2. 转 解决linux下tomcat的shutdown命令杀不死进程

    tomcat在windows下可以直接关闭,但是貌似在Linux下有时候shutdown.sh 没有关闭tomcat进程; 现象:在Linux下shutdown.sh ,然后查看tomcat进程发现没 ...

  3. zzuli1427 NO.6校赛----数字转换

    1427: 数字转换 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 572  Solved: 153 SubmitStatusWeb Board Des ...

  4. failed to load response data

    当需要根据后台传回地址跳转页面时 即使使用preserve log 可以查看上一个页面获取地址请求,但是此时请求返回值为failed to load response data 当关闭页面跳转可以查看 ...

  5. 点击input文字会自动消失

    <input type="text" name="q" value="请输入关键字" style="width:128px; ...

  6. OC 构造方法(对象初始化)

    一.构造方法 (一)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法来分配存储空间(返 ...

  7. TClientDataSet 的Filename 和 open方法

    cdsAdd.Open 不能用open,因为这个是DataSet的通用方法,不会检测文件名的,文件名是CDS特有的

  8. python字典{}大括号

    #字典 info = { 'name1':'jack', 'name2':'rose', 'name3':'tom', 'name4':'jerry', 'name5':'james' } info[ ...

  9. 基于struts2和hibernate的登录和注册功能——完整实例

    1.该项目使用MySQL数据库,数据库名为test,表名info,如图所示: 2.配置web.xml(Struts2使用) <?xml version="1.0" encod ...

  10. js常用用途

     页面元素查找 查找元素方法表达式                                                 返回值                            依据元 ...