LCM from 1 to n
题目: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相关推荐
- Pairs Forming LCM LightOJ - 1236
Pairs Forming LCM LightOJ - 1236 题意 问共有多少组数的最大公约数是n 分析 组合数学 ,唯一分解定理 参考代码 int Prime[670000]; const in ...
- 数论(一)——素数,GCD,LCM
这是一个数论系列:) 一.素数 ×费马小定理 Theorem: 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的.对 a = 2,满足的非素数 n 是存 ...
- hdu-3071 Gcd Lcm game---质因数分解+状态压缩+线段树
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3071 题目大意: 给定一个长度为n的序列m次操作,操作的种类一共有三种 查询 L :查询一个区间的所 ...
- 主席树 ---- CF 1422F. Boring Queries(由离线推出在线如何求的 ,求解多次询问的区间LCM)
题目链接 题目大意: 给你nnn个数, 每次往第iii个数里面里面乘aaa,问你这nnn个数的LCM\text{LCM}LCM是多少? 解题思路: 多个数的lcm不是所有数的乘积除以所有数的gcd,如 ...
- 图论 ---- 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矩阵元素的倍数 ...
- 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 ...
- 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是 ...
- 嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)
文章目录 0x00. 整数加减乘除 0x01. 一维数组按某种规律求和 0x01.1 求 1~100 之和 0x01.2. 求一维数组的和 0x01.2. 求一维数组的所有奇数的和 0x02. 二维数 ...
- CF1471 D - Strange Definition(思维,分类讨论,lcm,gcd的性质,数论)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #694 (Div. 2) D 很好的一道数论思维题 D - Str ...
- [lcm] Qualcomm平台的显示屏lcd驱动移植步骤
1lk部分 1-1 target_displayc 1-2 oem_panelc 1-3 panel_innont51021b_1200p_videoh 2Kernel 2-1 dsi-panel-b ...
最新文章
- EasyRTMP手机直播推送rtmp流flash无法正常播放问题
- 原始数据极速上传NCBI SRA教程
- 笔记-高项案例题-2019年上-计算题
- KXMovie基于ffmpeg的播放器
- 面对女人的喋喋不休时,男人内心的真实想法
- linux 标准函数注释,Linux 驱动程序中相关函数注释汇总(跟新中)
- ZC_汇编指令_cmp
- 软件测试常见断言,5.6 postman 常用的断言
- H264编解码算法在网络视频传输中的应用
- 搭建web项目常见错误
- 计算机无法关闭开机密码,电脑开机密码怎么取消
- dwf怎么合成一个_图纸集批量发布单页dwf的方法——院办质量小组
- 传输层协议《TCP/IP详解 卷1:协议》学习笔记
- HTML5系列代码:注册商标reg_和版权商标copy
- DNS工作原理及解析过程
- 三种迭代法解方程组(雅可比Jacobi、高斯-赛德尔Gaisi_saideer、逐次超松弛SOR)
- ubuntu 添加中文拼音输入法
- Java实现头像上传
- webp格式怎么转成jpg?
- 栈和队列---最大值减去最小值小于或等于num的子数组数量