题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26999


题意:给定一个正整数n,求的值,输入数据有10000组,每组一个数n,1<=n<=10^8。


分析:定义为1,2,3,...,n的最小公倍数。则可以发现有如下结论:


所以有:




那么,我们先把所有素数的连乘预处理出来,然后再对每一个素数的整数次幂根据n的不同进行操作。在素数筛选中,我们利用位图来节省内存空间。


#include <iostream>
#include <string.h>
#include <algorithm>
#include <stdio.h>
#include <math.h>using namespace std;
typedef unsigned int uint;
const int N = 100000005;
const int M = 6000005;
const int SHIFT = 5;
const int RADIX = (1 << SHIFT) - 1;int flag[(N>>SHIFT)+1];
uint sum[M];
int p[M];
int k;inline void SetBit(int x)
{flag[x>>SHIFT] |= (1<<(x&RADIX));
}inline bool GetBit(int x)
{return flag[x>>SHIFT] & (1<<(x&RADIX));
}void isprime()
{k = 0;for(int i=2; i<N; i++){if(!GetBit(i)){p[k++] = i;for(int j=i+i; j<N; j+=i)SetBit(j);}}
}void Init()
{sum[0] = p[0];for(int i=1; i<k; i++)sum[i] = sum[i-1] * p[i];
}int main()
{isprime();Init();int T,n,tt = 1;scanf("%d",&T);while(T--){scanf("%d",&n);printf("Case %d: ",tt++);uint ans = 1;int cnt = 1;while(1){int m = (int)pow(n+0.9,1.0/cnt);if(m < 2) break;int i = lower_bound(p,p+k,m) - p;if(p[i] != m) i--;ans *= sum[i];cnt++;}printf("%u\n",ans);}return 0;
}

LCM from 1 to n相关推荐

  1. Pairs Forming LCM LightOJ - 1236

    Pairs Forming LCM LightOJ - 1236 题意 问共有多少组数的最大公约数是n 分析 组合数学 ,唯一分解定理 参考代码 int Prime[670000]; const in ...

  2. 数论(一)——素数,GCD,LCM

    这是一个数论系列:) 一.素数 ×费马小定理 Theorem: 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的.对 a = 2,满足的非素数 n 是存 ...

  3. hdu-3071 Gcd Lcm game---质因数分解+状态压缩+线段树

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3071 题目大意: 给定一个长度为n的序列m次操作,操作的种类一共有三种 查询 L :查询一个区间的所 ...

  4. 主席树 ---- CF 1422F. Boring Queries(由离线推出在线如何求的 ,求解多次询问的区间LCM)

    题目链接 题目大意: 给你nnn个数, 每次往第iii个数里面里面乘aaa,问你这nnn个数的LCM\text{LCM}LCM是多少? 解题思路: 多个数的lcm不是所有数的乘积除以所有数的gcd,如 ...

  5. 图论 ---- D. Multiples and Power Differences (全局lcm + 矩阵二分图)

    题目链接 题目大意: 给你一个n×mn×mn×m的矩阵aaa 1≤a[i][j]≤161≤a[i][j]≤161≤a[i][j]≤16 要你构造矩阵bbb,使得bbb矩阵的元素为aaa矩阵元素的倍数 ...

  6. GCD or LCM ---- 处理gcd和lcm同时出现的情况 1499D - The Number of Pairs

    题目链接 题目大意: 给你c,d,xc,d,xc,d,x求有多少对a,ba,ba,b,满足下面的式子? c×lcm(a,b)−d×gcd(a,b)=xc \times lcm(a,b)-d\times ...

  7. Pairs Forming LCM LightOJ - 1236[数论+组合计数]

    题目大意就是问你从1到n里面有多少对数的LCM(i,j)=nLCM(i,j)=nLCM(i,j)=n 我们知道i和j是n的约数i和j是n的约数i和j是n的约数,那么我们就可以将n进行质因子分解LCM是 ...

  8. 嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)

    文章目录 0x00. 整数加减乘除 0x01. 一维数组按某种规律求和 0x01.1 求 1~100 之和 0x01.2. 求一维数组的和 0x01.2. 求一维数组的所有奇数的和 0x02. 二维数 ...

  9. CF1471 D - Strange Definition(思维,分类讨论,lcm,gcd的性质,数论)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #694 (Div. 2) D 很好的一道数论思维题 D - Str ...

  10. [lcm] Qualcomm平台的显示屏lcd驱动移植步骤

    1lk部分 1-1 target_displayc 1-2 oem_panelc 1-3 panel_innont51021b_1200p_videoh 2Kernel 2-1 dsi-panel-b ...

最新文章

  1. EasyRTMP手机直播推送rtmp流flash无法正常播放问题
  2. 原始数据极速上传NCBI SRA教程
  3. 笔记-高项案例题-2019年上-计算题
  4. KXMovie基于ffmpeg的播放器
  5. 面对女人的喋喋不休时,男人内心的真实想法
  6. linux 标准函数注释,Linux 驱动程序中相关函数注释汇总(跟新中)
  7. ZC_汇编指令_cmp
  8. 软件测试常见断言,5.6 postman 常用的断言
  9. H264编解码算法在网络视频传输中的应用
  10. 搭建web项目常见错误
  11. 计算机无法关闭开机密码,电脑开机密码怎么取消
  12. dwf怎么合成一个_图纸集批量发布单页dwf的方法——院办质量小组
  13. 传输层协议《TCP/IP详解 卷1:协议》学习笔记
  14. HTML5系列代码:注册商标reg_和版权商标copy
  15. DNS工作原理及解析过程
  16. 三种迭代法解方程组(雅可比Jacobi、高斯-赛德尔Gaisi_saideer、逐次超松弛SOR)
  17. ubuntu 添加中文拼音输入法
  18. Java实现头像上传
  19. webp格式怎么转成jpg?
  20. 栈和队列---最大值减去最小值小于或等于num的子数组数量

热门文章

  1. 登录业务介绍(单点登录)
  2. 微服务网关实现用户访问权限识别拦截
  3. JUL执行原理和流程
  4. class文件的产生过程
  5. 树和二叉树的基本概念(二级)
  6. Bootstrap全局css样式_辅助类
  7. GCC 和 MDK (即 Keil) 手工指定其地址及指针
  8. Jquery+php+ajax实现表单异步提交,动态添加回复评论
  9. Delphi XE7中新并行库
  10. 分布式任务分发框架Gearman教程和PHP实现实例