[ Luogu 4626 ] 一道水题 II
2024-08-30 19:47:18
\(\\\)
\(Description\)
求一个能被\([1,n]\) 内所有数整除的最小数字,并对 \(100000007\) 取模
- \(N\in [1,10^8]\)
\(\\\)
\(Solution\)
一道卡常好题 好吧是我常数太大了
考虑将限制区间内所有数质因数分解,对每一个质因子\(i\)记录下\(t_i\)表示,这个质因子在区间内任意一个数里,出现的最高幂次,那么答案就应该是每个质因子对应的最高幂之积。
质数可以线性筛 注意常数别写丑了 ,考虑如何求每一个质数的最高次幂。考虑将上限\(N\)除掉一次质因数\(p_i\),得到的数就代表原来那些含\(p_i\)的数的个数。于是一直将\(N\)除\(p_i\)至\(0\),那么合法的除的次数就是最高幂次的指数。
然后我写了个快速幂就\(T\)了......注意到迭代的同时是可以记录这个最高次幂的结果的,所以可以去掉快速幂的\(log\)复杂度虽然只快了几十毫秒依然卡着时限
\(\\\)
\(Code\)
#include<cmath>
#include<cstdio>
#include<cctype>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 100000010
#define R register
#define mod 100000007ll
using namespace std;
typedef long long ll;
bool vis[N];
int n,prm[N>>3];
inline void init(int n){
for(R int i=2;i<=n;++i){
if(!vis[i]) prm[++prm[0]]=i;
for(R int j=1,k;j<=prm[0]&&(k=prm[j]*i)<=n;++j){
vis[k]=1; if(i%prm[j]==0) break;
}
}
}
inline ll qpow(ll x,ll t){
ll res=1;
while(t){
if(t&1) (res*=x)%=mod;
(x*=x)%=mod; t>>=1;
}
return res;
}
int main(){
scanf("%d",&n); init(n);
R ll tmp,res,ans=1;
for(R int i=1;i<=prm[0];++i){
tmp=(ll)n; res=1;
while(tmp>=prm[i]) (res*=prm[i])%=mod,tmp/=prm[i];
(ans*=res)%=mod;
}
printf("%lld\n",ans);
return 0;
}
最新文章
- MVC中的Html.Partial和Html.RenderPartial
- Windows Path设置
- 提高HTML5 Canvas性能的技巧
- java学习面向对象之设计模式之单例模式
- ORACLE RAC中一个实例不能随crs自动启动的解决
- Putty远程登录VMware虚拟机Linux(Ubuntu12.04)
- Java并发专题 带返回结果的批量任务执行 CompletionService ExecutorService.invokeAll(转)
- 【百度地图API】暑假放假回老家——城市切换功能
- 201521123082 《Java程序设计》第13周学习总结
- 基于嵌入式操作系统VxWorks的多任务并发程序设计(2) ――任务控制
- cnblog 模板 SimpleMemory 个性化设置代码备份
- C# Math的说有函数 以及说明
- Model First 开发方式
- 洛谷 P1047 校门外的树
- tensorflow(1) 基础: 神经网络基本框架
- kylin对接hive实现实时查询
- weixin.com的whois信息变更为腾讯了 是准备替换weixin.qq.com吗?
- SQL提高查询效率【in、not in、between、like】等条件讲述
- idea开发工具下报Set language level to 6-@Override in interfaces的解决方法
- 原生JavaScript的DOM操作方法总结
热门文章
- 线程池之ThreadPool与ForkJoinPool
- HDOJ 4259 Double Dealing
- Jquery的运用
- (工具类)Linux笔记之终端日志记录工具script
- Lighttpd 插件mod_h264 streaming (mp4)安装
- Android解析程序包时出现问题
- android XXXActivity和getApplicationContext()差别
- https://security.stackexchange.com/questions/68405/what-is-tmunblock-cgi-and-can-it-be-exploited-by-shellshock-linux-apache-w
- Linux/Android——usb触摸屏驱动 - usbtouchscreen (一)【转】
- PL/SQL -->;隐式游标(SQL%FOUND)