传送门

Description

有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值。

Input

共两行。
第一行一个正整数n。
第二行n个正整数a[i]。

Output

共一行
一个正整数m。

Sample Input

1
6

Sample Output

3

样例解释:
当p=6,q=1时,p*q=3!

Data Constraint

对于10%的数据,n<=10
对于30%的数据,n<=1000
对于100%的数据,n<=100000,a[i]<=100000

Code

//By Menteur_Hxy
#pragma GCC diagnostic error "-std=c++11"
#pragma GCC optimize("-fdelete-null-pointer-checks,inline-functions-called-once,-funsafe-loop-optimizations,-fexpensive-optimizations,-foptimize-sibling-calls,-ftree-switch-conversion,-finline-small-functions,inline-small-functions,-frerun-cse-after-loop,-fhoist-adjacent-loads,-findirect-inlining,-freorder-functions,no-stack-protector,-fpartial-inlining,-fsched-interblock,-fcse-follow-jumps,-fcse-skip-blocks,-falign-functions,-fstrict-overflow,-fstrict-aliasing,-fschedule-insns2,-ftree-tail-merge,inline-functions,-fschedule-insns,-freorder-blocks,-fwhole-program,-funroll-loops,-fthread-jumps,-fcrossjumping,-fcaller-saves,-fdevirtualize,-falign-labels,-falign-loops,-falign-jumps,unroll-loops,-fsched-spec,-ffast-math,Ofast,inline,-fgcse,-fgcse-lm,-fipa-sra,-ftree-pre,-ftree-vrp,-fpeephole2",3)
#pragma GCC target("avx","sse2")
#include<set>
#include<map>
#include<cmath>
#include<cstdio>
#include<vector>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define int long long
#define F(i,a,b) for(register int i=(a);i<=(b);i++)
#define R(i,a,b) for(register int i=(b);i>=(a);i--)
#define E(i,u) for(register int i=head[u];i;i=nxt[i])
#define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin)),p1==p2?EOF:*p1++)
using namespace std;
typedef long long LL;char buf[1<<21],*p1,*p2;
inline int read() {int x=0,f=1; char c=getchar();while(!isdigit(c)) {if(c=='-')f=-f;c=getchar();}while(isdigit(c)) x=(x<<1)+(x<<3)+c-48,c=getchar();return x*f;
}const int N=100010;
int n,tot,cnt;
int pri[N],vis[N],mip[N],p[N],M[N];void resolve(int x) {while(mip[x]!=x) {if(!M[mip[x]]) p[++cnt]=mip[x];M[mip[x]]++; x/=mip[x];}if(mip[x]==x&&x!=1&&x!=0) {if(!M[mip[x]]) p[++cnt]=mip[x];M[mip[x]]++;}
}bool jud(int x) {F(i,1,cnt) {int res=0,tmp=p[i];while(tmp<=x) res+=x/tmp,tmp*=p[i];if(res<M[p[i]]) return 0;} return 1;
} void init() {mip[1]=1;F(i,2,100000) {if(!vis[i]) pri[++tot]=i,mip[i]=i;for(register int j=1;j<=tot&&i*pri[j]<=100000;j++) {vis[i*pri[j]]=1; mip[i*pri[j]]=pri[j];if(i%pri[j]==0) break;}}
}signed main() {freopen("factorial.in","r",stdin);freopen("factorial.out","w",stdout);n=read();init();F(i,1,n) resolve(read());
//  jud(10);
//  F(i,1,cnt) cout<<p[i]<<" ";cout<<endl;int l=1,r=5e6;while(l<=r) {int mid=(l+r)>>1;if(jud(mid)) r=mid-1;else l=mid+1;
//      printf("%d\n",mid);}printf("%d",l);return 0;
}

转载于:https://www.cnblogs.com/Menteur-Hxy/p/9457323.html

[jzoj5791]【NOIP2008模拟】阶乘 (数学)相关推荐

  1. JZOJ5776. 【NOIP2008模拟】小x游世界树

    题目:[NOIP2008模拟]小x游世界树: 题目的附加题解给的很清楚,这里只给一个代码: 1 #include<iostream> 2 #include<cstdio> 3 ...

  2. JZOJ 5776. 【NOIP2008模拟】小x游世界树

    5776. [NOIP2008模拟]小x游世界树  (File IO): input:yggdrasil.in output:yggdrasil.out Time Limits: 1500 ms  M ...

  3. 高中二年级计算机会考吉大附中,长春市吉大附中实验学校届高三模拟考试数学试题及答案(理).pdf...

    2013-2014学年下学期高三年级 第三次模拟考试数学( )学科试卷 第Ⅰ卷 (选择题,共60分) 一.选择题:本大题共12小题,每小题5分,在每小题给出的四个选项中,只有一项是符 合题目要求的. ...

  4. 交大网络11秋计算机高起专一共要考几门,2010年秋季西南交大高起专网络教育入学考试模拟题数学...

    西南交通大学网络教育入学考试模拟题 数学(一) 1.下列命题正确的是( C ) A. {实数集} B. {|x x ?≤ C. {|x x ≤ D. {|x x ?≤ 2.终边在y 轴的正半轴上的角的 ...

  5. 1739 - 放置盒子 - 模拟 - 贪心 - 数学

    欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击. 文章目录 题目描述 题目描述 题目剖析&信息挖掘 解题思路 方法一 模拟+贪心+数学 分析 思路 注意 知识点 复杂度 ...

  6. 阶乘分之一和java_n的阶乘比上(n+1)的阶乘等于多少-n的阶乘-数学-糜朔德同学

    概述:本道作业题是糜朔德同学的课后练习,分享的知识点是n的阶乘,指导老师为白老师,涉及到的知识点涵盖:n的阶乘比上(n+1)的阶乘等于多少-n的阶乘-数学,下面是糜朔德作业题的详细. 题目:n的阶乘比 ...

  7. C 语言三棱锥体积的代码,山西省太原市2018届高三3月模拟考试数学(理)试题(一)含答案...

    山西省太原市2018届高三3月模拟考试数学(理)试题(一)含答案 太原市2018年高三模拟试题(一) 数学试卷(理工类) 一.选择题:本大题共12个小题,每小题5分,共60分.在每小题给出的四个选项中 ...

  8. [Codeforces677B]Vanya and Food Processor(模拟,数学)

    题目链接:http://codeforces.com/contest/677/problem/B 题意:n个土豆,每个土豆高ai.现在有个加工机,最高能放h,每次能加工k.问需要多少次才能把土豆全加工 ...

  9. 5793. 【NOIP2008模拟】小S练跑步

    Description        小S是一个爱锻炼的孩子,他在放假期间坚持在A公园练习跑步.       但不久后,他就开始为在重复的地点练习感到厌烦了,他就打算去B公园跑步.       但是小 ...

最新文章

  1. Python 中的魔术方法(双下划线开头和结尾的方法)
  2. 性能压测服务器502报错,一种交易系统的性能测试方法及相关服务器
  3. Silverlight4.0(9) 之 分页控件轻量级的Session
  4. 【蓝桥杯】基础练习 十进制转十六进制
  5. JAX-RS协议说明
  6. Kaggle竞赛方案分享:如何分辨杂草和植物幼苗(转)
  7. python股票预测代码_python用线性回归预测股票价格的实现代码
  8. CTS ( 9)---CTS 源码分析
  9. 451 Sort Characters By Frequency 根据字符出现频率排序
  10. 中职计算机基础知识总结,中职计算机基础知识整理
  11. 幂级数展开求积分_蛮力硬推定积分基本公式
  12. FiddlerScript实现对QQ空间账号密码获取
  13. 学习软件测试必备的网站清单,建议收藏!
  14. fastjson使用toJSONString时null值不序列化问题
  15. python - 单因子分析
  16. android sim卡联系人存储格式,如何在Android设备上将联系人复制到SIM卡
  17. k8s修改默认命名空间
  18. 用wxpython编写登录界面_用wxPython打造Python图形界面(上)
  19. IE11怎么调取摄像头并拍照
  20. 匿名函数(Lambda表达式)与箭头函数

热门文章

  1. Sass的概念以及命令
  2. 自然语言处理简介及研究方向
  3. iPhone数据线连接电脑成为电脑USB摄像头
  4. 如何在服务器搭建oa系统,如何在云主机搭建oa服务器
  5. 第15课:如何用RPA循环填写表单?(练兵场二)
  6. 【独家】寒武纪A轮融资1亿美元,成全球AI芯片首个独角兽,阿里参投
  7. mysql的where子查询_MySQL where型子查询
  8. python计算机视觉--全景图像拼接
  9. CTF密码学总结(一)
  10. Ubuntu18.04打开关闭DNS服务