nyoj 517 最小公倍数
来源:互联网 发布:网络装备交易 编辑:程序博客网 时间:2024/06/03 02:26
最小公倍数
时间限制: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
可以发现,1到n的最小公倍数,是1到n-1的最小公倍数乘以n的所有素因子中没有被1到n-1包含的素因子。
例如:1到7的最小公倍数是2*3*2*5*7,8=2*2*2,(8中2出现3次,1到7的素因子中只出现2次)那么1到8就是2*3*2*5*7*2
#include <iostream>#include <string.h>//memset函数的头文件 using namespace std;#define M 105#define MAX 1000int main() { int a[M],i,j; int b[1000]; for(i=1; i<M; i++) a[i]=i; /*因为当前数可能是以后数的因子,则把当前数以后的数的因子去掉,剩余的数相乘就好啦*/ for(i=2; i<M; i++) { for(j=i+1; j<M; j++) { if(a[j]%a[i]==0) { a[j]=a[j]/a[i]; } } } int n; int c;//余数 int s; while(cin>>n) {// memset(b,0,1000*sizeof(int)); memset(b,0,sizeof(b)); b[0]=1;//将b[1]-b[n]中所有数相乘起来就是最小公倍数 for(i=2; i<=n; i++) { //乘以a[i] c=0; for(j=0; j<MAX; j++) { s=b[j]*a[i]+c; b[j]=s%10; c=s/10; } } //输出 for(j=MAX-1; j>=0; j--) //忽略前导0 if(b[j]) break; for(i=j; i>=0; i--) cout<<b[i]; cout<<endl; } return 0;}
1 0
- NYOJ-517 最小公倍数 TLE
- 最小公倍数(nyoj 517)
- [NYOJ 517]最小公倍数
- nyoj 517 最小公倍数
- NYOJ 517 最小公倍数
- NYOJ 517 最小公倍数
- NYOJ 517 最小公倍数 (Java)
- nyoj-517 最小公倍数
- nyoj 517 最小公倍数 【java大数】
- NYOJ-517-最小公倍数,大数啊~~~
- NYOJ 517 最小公倍数(C/C++)
- nyoj 517 最小公倍数(大数+求最小公倍数思想)
- NYOJ 517 最小公倍数 (1-n 个数的最小公倍数,大数)
- nyoj-517 求1-n的最小公倍数
- NYOJ 517 最小公倍数(java实现)
- NYOJ 题目517 最小公倍数(大数)
- nyoj 517 最小公倍数【数学】大数处理
- NYOJ最大公因数最小公倍数
- java接口可以多继承
- postgresql:could not identify an equality operator for type json
- android 音效处理 (2)
- android开发游记:VectorDrawable矢量图兼容性问题的解决方案
- Radar
- nyoj 517 最小公倍数
- SDUT2132数据结构实验之栈二:一般算术表达式转换成后缀式
- 怎样将win平台QT5.4.1-MingW编译的可执行程序打包给其他电脑使用?
- 教你快速安装Windows系统
- Word使用小问题汇集
- mysql存储过程语法及实例
- LeetCode: Best Time to Buy and Sell Stock II
- iOS开发-进阶:架构模式--解密 MVC,MVP,MVVM以及VIPER架构(翻译)
- Android AutoLayout全新的适配方式 堪称适配终结者