1434 区间LCM

基准时间限制:1 秒 空间限制:131072 KB
一个整数序列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示例
3
1
2
3
Output示例
2
4
6
保证[1,N]区间每个质数的指数最大值在[N+1,M]间至少出现一次。
 1 #include<iostream>
2 #include<algorithm>
3 #include<queue>
4 #include<set>
5 #include<math.h>
6 #include<stdlib.h>
7 #include<stdio.h>
8 #include<string.h>
9 using namespace std;
10 bool prime[1000005];
11 int ans[100000];
12 int ak[1000005];
13 typedef long long LL;
14 int main(void)
15 {
16 memset(prime,0,sizeof(prime));
17 for(int i = 2; i <= 1000; i++)
18 {
19 if(!prime[i])
20 {
21 for(int j = i; (i*j) <= 1000000 ; j++)
22 {
23 prime[i*j] = true;
24 }
25 }
26 }
27 int cn = 0;
28 for(int i = 2; i < 1000000; i++)
29 {
30 if(!prime[i])
31 ans[cn++] = i;
32 }
33 int T;
34 scanf("%d",&T);
35 while(T--)
36 {
37 int n;
38 scanf("%d",&n);
39 if(n == 1)printf("2\n");
40 else if(n==2)printf("4\n");
41 else if(n==3)printf("6\n");
42 else
43 {
44 fill(ak,ak+1000000,1);
45 int maxx = 0;
46 for(int i = 0; i < cn ; i++)
47 {
48 if(ans[i] > n)
49 {
50 maxx = i-1;
51 break;
52 }
53 int k = 1;
54 int t = 0;
55 while(k<=n)
56 {
57 ak[ans[i]] = max(ak[ans[i]],k) ;
58 k*=ans[i];
59 }
60 }if(maxx == 0) maxx = cn;
61 maxx = min(maxx,cn);
62 LL x = n;
63 LL akk = x;
64 for(int i = 0; i <= maxx; i++)
65 {
66 if(ak[ans[i]]>1)
67 {
68 LL xx= (x)/ak[ans[i]];
69 if(xx*ak[ans[i]] <= x)
70 {
71 xx++;
72 }
73 akk = max(akk,xx*ak[ans[i]]);
74 }
75 }
76 printf("%lld\n",akk);
77 }
78 }
79 return 0;
80 }

最新文章

  1. HttpUrlConnection
  2. gcc编译时头文件和库文件搜索路径
  3. 高尔夫管理系统SSH
  4. 【PowerOJ1739】 魔术球问题
  5. {Reship}Precision, Accuracy &amp; Recall
  6. PHP 使用CURL
  7. FIR.im Weekly - 让炫酷 UI 为 APP 增色
  8. javascript: detect mobile devices or browser
  9. GCD之dispatch queue深入浅出
  10. 2013 Multi-University Training Contest 9
  11. 文件夹差异文件对比工具 meld
  12. Sublime Text 2 安装主题的方法
  13. mysql数据库表格导出为excel表格
  14. 《大象UML》看书笔记2:
  15. html-关于IE浏览器兼容性的问题,还有浏览器一直加载的问题。
  16. 基于jQuery的自定义插件:实现整屏分页转换的功能
  17. MySQL的常用操作命令详解
  18. 写给大忙人的centos下ftp服务器搭建(以及启动失败/XFTP客户端一直提示“用户身份验证失败”解决方法)
  19. [Swift]LeetCode126. 单词接龙 II | Word Ladder II
  20. mssql 数据库表行转列,列转行 比较经典

热门文章

  1. 在C++的map类型中按value排序
  2. 容器之分类与各种测试(四)——multiset
  3. C++ 继续(3n+1)猜想
  4. gitlab基础命令之代码回滚
  5. CentOS 7.3安装完整开发环境
  6. NSURLSession下载文件-代理
  7. jQuery 的两种语法
  8. springmvc中的异常处理方法
  9. 【Java】【学习】【监听器】Listener的学习的案例(窗体程序)
  10. 【Spark】【设置】关闭INFO提示