区间LCM
来源:互联网 发布:安卓富文本编辑器源码 编辑:程序博客网 时间:2024/06/05 01:13
一个整数序列S的LCM(最小公倍数)是指最小的正整数X使得它是序列S中所有元素的倍数,那么LCM(S)=X。
例如,LCM(2)=2,LCM(4,6)=12,LCM(1,2,3,4,5)=60。
现在给定一个整数N(1<=N<=1000000),需要找到一个整数M,满足M>N,同时LCM(1,2,3,4,...,N-1,N) 整除 LCM(N+1,N+2,....,M-1,M),即LCM(N+1,N+2,....,M-1,M)是LCM(1,2,3,4,...,N-1,N) 的倍数.求最小的M值。
Input
多组测试数据,第一行一个整数T,表示测试数据数量,1<=T<=5每组测试数据有相同的结构构成:每组数据一行一个整数N,1<=N<=1000000。
Output
每组数据一行输出,即M的最小值。
Input示例
3123
Output示例
246#include <cstring>#include <iostream>#include <vector>using namespace std;const int MAXN = 1e6 + 5;vector<int> primes;int T;bool buf[MAXN];void calPrime(){memset(buf, true, sizeof(buf));buf[0] = false;buf[1] = false;for (int i = 2; i < MAXN; i++){if (buf[i]){primes.push_back(i);for (int j = 2*i; j < MAXN; j += i){buf[j] = false;}}}}int main(){calPrime();cin >> T;for (int i = 0; i < T; i++){int n;cin >> n;int j = 0;int result = 1;while (primes[j] <= n){for (int k = primes[j]; k <= n; k *= primes[j]){result = max(result, k);}j++;}cout << 2*result << endl;}return 0;}
阅读全文
0 0
- 区间LCM
- 1434 区间LCM
- 1434 区间LCM
- 51nod 1434 区间LCM
- 51nod-1434 区间LCM
- 51nod 1434 区间LCM
- 51NOD 1434 区间LCM
- 51nod-1434 区间LCM
- 51nod 1434 区间LCM
- 51nod 1434 数论区间LCM问题
- 51Nod-1434-区间LCM
- 51nod 1434 区间LCM【数论】
- lcm
- LCM~~~!!!
- LCM
- LCM
- 【LCM】
- 51NOD 1434 区间LCM(素数筛)
- Java序列化和hessian序列化的区别
- 线性回归c++实现
- python3学习-列表方法
- weui-tabbar老是在顶部 如何让 height:100%; 起作用
- 剑指offer面试题2:实现Singleton模式(Java版)
- 区间LCM
- spring第一天
- 数据库索引的实现原理
- OPENCV图像边缘查找与分割技术在android中使用汇总
- hdu4614 Vases and Flowers (线段树)
- How To Install Ruby with rbenv on Cent OS 7.2
- ubuntu systemctl generated and enabled
- [kaggle数据] 泰坦尼克号生存预测分析
- Oracle存储过程基本语法及基础教程