nyoj 最小公倍数
最小公倍数
- 描述
-
为什么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 最小公倍数的更多相关文章
- nyoj 517 最小公倍数 【java睑板】
我写了一个gcd TL该.然后调用math内gcd,AC该... 思维:它是采取n前面的最小公倍数和n求 1~n的最小公倍数 代码: import java.util.Scanner; import ...
- 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 ...
- NYOJ 1007
在博客NYOJ 998 中已经写过计算欧拉函数的三种方法,这里不再赘述. 本题也是对欧拉函数的应用的考查,不过考查了另外一个数论基本定理:如何用欧拉函数求小于n且与n互质所有的正整数的和. 记eule ...
- NYOJ 998
这道题是欧拉函数的使用,这里简要介绍下欧拉函数. 欧拉函数定义为:对于正整数n,欧拉函数是指不超过n且与n互质的正整数的个数. 欧拉函数的性质:1.设n = p1a1p2a2p3a3p4a4...pk ...
- 求N个数的最大公约数和最小公倍数(转)
除了分解质因数,还有另一种适用于求几个较小数的最大公约数.最小公倍数的方法 下面是数学证明及算法实现 令[a1,a2,..,an] 表示a1,a2,..,an的最小公倍数,(a1,a2,..,an)表 ...
- C语言 · 最小公倍数
问题描述 编写一函数lcm,求两个正整数的最小公倍数. 样例输入 一个满足题目要求的输入范例.例:3 5 样例输出 与上面的样例输入对应的输出.例: 数据规模和约定 输入数据中每一个数的范围. 例:两 ...
- Java程序设计之最大公约数和最小公倍数
题目:输入两个正整数number1和number2,求其最大公约数和最小公倍数. 算法:较大数和较小数取余,较小数除余数,一直到余数为0时,为最大公约数(辗转相除法):最大公倍数numbe1*numb ...
- NYOJ 333
http://www.cppblog.com/RyanWang/archive/2009/07/19/90512.aspx?opt=admin 欧拉函数 E(x)表示比x小的且与x互质的正整数的个数. ...
- 最大公约数和最小公倍数--java实现
代码: //最大公约数 public int gcd(int p,int q){ if(q == 0) return p; return gcd(q, p % q); } //最小公倍数 public ...
随机推荐
- 『cs231n』作业1选讲_通过代码理解KNN&交叉验证&SVM
通过K近邻算法探究numpy向量运算提速 茴香豆的“茴”字有... ... 使用三种计算图片距离的方式实现K近邻算法: 1.最为基础的双循环 2.利用numpy的broadca机制实现单循环 3.利用 ...
- python-day10--文件处理
1.文件:是操作系统提供的概念 2. open(r+'文件路径' , '打开方式' , '用什么字符编码') #r 表示原始字符串 eg:open(r'C:\Users\13264\Desktop ...
- VS2010-自定义控件
1.自定义控件 (1)新建—项目,项目模板选择“类库”,取名smControl,填写项目文件保存目录,点击确定 (2)完成后在解决方案资源管理器中删除类Class1 (3)添加“用户控件”——在解决方 ...
- 追加XML
追加有两种情况,这个文档可能存在,也可能不存在 XmlDocument doc = new XmlDocument();XmlElement books; //将books声明在外边这样后面的代码才可 ...
- PHP:第二章——PHP中的while语句
<?php 语法格式: while(条件){ 代码块; } 说明:如果条件等价于true则重复执行代码块中内容,否则不执行 示例1: $i = ; ){ $i--; echo $i; } 注意: ...
- 重启oracle数据库的操作方法
在实际的应用中,有时候工作数据库需要重新启动.本文介绍了一个特别实用的操作步骤,希望对大家有所帮助. 1. 停应用层的各种程序 2. 停Oralce的监听进程 $ lsnrctl stop 3. 在独 ...
- numpy 小示例
import numpy as np 生成 3*4 的由 0 组成的二维数组 >>> np.zeros((3,4)) array([[0., 0., 0., 0.], [0., 0 ...
- L1-012 计算指数
真的没骗你,这道才是简单题 —— 对任意给定的不超过 10 的正整数 n,要求你输出 2n.不难吧? 输入格式: 输入在一行中给出一个不超过 10 的正整数 n. 输出格式: 在一行中按照格式 ...
- L220
He must not allow this unusual barrier (obstacle) to stop him from fighting against the enemy.他绝不能让这 ...
- 《头文字D》热门同人插画欣赏
<头文字D>(INITIAL D)是一部以山道飙车为题材的日本青年漫画,以及以漫画改编的动画系列(包含电视版.OVA.与电影版).漫画作者为重野秀一(しげの秀一),自1995 年起开始在讲 ...