题目链接:Click here

题目大意:求一个数分解质因数后的最小幂指数

Solution:

首先,我们肯定是不能直接暴力求解的

我们先考虑筛出1e4范围以内的所有质数,把x所有这个范围内的质因子筛掉

那么现在它的数值范围就变成了1e14了,考虑此时他还存在没有被筛掉的质因子的情况

因为我们已经筛掉了1e4以内的质数,所以此时它的质因子的大小是大于1e4的,那么它的指数大小最大为4

我们可以直接对此时的x开根来判断指数是否为2、4,对于指数为3的情况我们则二分判断,若都不满足,则他为质数

Code:

#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
const int N=1e4+1;
int n,tot,ans;
int prime[N],isprime[N];
int min(int a,int b){return a<b?a:b;}
int read(){
int x=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
while(isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;
}
void prepare(){
for(int i=2;i<=N;i++){
if(!isprime[i]) prime[++tot]=i;
for(int j=1;j<=tot&&prime[j]*i<=N;j++){
isprime[prime[j]*i]=1;
if(i%prime[j]==0) break;
}
}
}
int calc(int x){return x*1ll*x*1ll*x;}
int find(){
int l=N,r=N*100;
while(l<=r){
int mid=l+r>>1,x=calc(mid);
if(x<n) l=mid+1;
if(x>n) r=mid-1;
if(x==n) return 1;
}return 0;
}
void solve(){
n=read(),ans=60;
for(int i=1;i<=tot&&prime[i]<=n;i++){
if(n%prime[i]==0){int t=0;
while(n%prime[i]==0){
n/=prime[i];
++t;
}ans=min(ans,t);
}
}if(n==1) return printf("%lld\n",ans),void();
int u1=sqrt(n),u2=sqrt(u1),flag=0;
if(u2*u2*u2*u2==n) ans=min(ans,4),flag=1;
else if(u1*u1==n) ans=min(ans,2),flag=1;
if(find()) ans=min(ans,3),flag=1;
if(!flag) ans=1;
printf("%lld\n",ans);
}
signed main(){
prepare();
int t=read();
while(t--) solve();
return 0;
}

2019hdu多校 Minimal Power of Prime的更多相关文章

  1. 2019HDU多校Minimal Power of Prime——分段讨论&&思维

    题目 将 $n$($1 < n \leq 10^{18}$)质因数分解,求质因数幂的最小值. 分析 直接质因数分解,不太行. 可以这样想,对小区间质因数分解,n变小了,再枚举答案. 打印1-10 ...

  2. 2019杭电多校第四场hdu6623 Minimal Power of Prime

    Minimal Power of Prime 题目传送门 解题思路 先打\(N^\frac{1}{5}\)内的素数表,对于每一个n,先分解\(N^\frac{1}{5}\)范围内的素数,分解完后n变为 ...

  3. [2019杭电多校第四场][hdu6623]Minimal Power of Prime

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6623 题目大意为求一个数的唯一分解的最小幂次.即120=23*31*51则答案为1. 因为数字太大不能 ...

  4. HDU 6623 Minimal Power of Prime

    Time limit 1000 ms Memory limit 65536 kB OS Windows 中文题意 给一个数n,设将n质因数分解后可以得到 \[n=\prod_{i=1}^{\omega ...

  5. HDU 6623"Minimal Power of Prime"(数学)

    传送门 •题意 给你一个大于 1 的正整数 n: 它可以分解成不同的质因子的幂的乘积的形式,问这些质因子的幂中,最小的幂是多少. •题解 定义 $ans$ 表示最终答案: ①如果 $ans \ge 5 ...

  6. HDU 6623 Minimal Power of Prime(数学)

    传送门 •题意 给你一个大于 1 的正整数 n: 它可以分解成不同的质因子的幂的乘积的形式,问这些质因子的幂中,最小的幂是多少. •题解 把[1,10000]内的素数筛出来,然后对于每个素$P$数遍历 ...

  7. HDU 6623 Minimal Power of Prime(思维)题解

    题意: 已知任意大于\(1\)的整数\(a = p_1^{q_1}p_2^{q_2} \cdots p_k^{q_k}\),现给出\(a \in [2,1e18]\),求\(min\{q_i\},q ...

  8. 2019 Multi-University Training Contest 4 - 1010 - Minimal Power of Prime

    http://acm.hdu.edu.cn/showproblem.php?pid=6623 题意,给50000个1e18级别的数N,求它质因数分解里面的最小的指数(不算0) 比赛的时候给划了一个1e ...

  9. 【HDOJ6623】Minimal Power of Prime(Powerful Number)

    题意:给定大整数n,求其质因数分解的最小质数幂 n<=1e18 思路:常规分解算法肯定不行 考虑答案大于1的情况只有3种:质数的完全平方,质数的完全立方,以及p^2*q^3,p,q>=1三 ...

随机推荐

  1. Visual Subst - 简单将任意文件夹挂载模拟成驱动器盘符硬盘分区的小工具

    随着电脑的使用,硬盘里的资料一天比一天多,也越来越杂乱.一些朋友为了方便文件管理,会考虑重新分区,让C.D.E等盘符分别担任不同的角色.不过,不分区的话也有一些小工具可以帮你实现. Visual Su ...

  2. (转)使用JMeter对秒杀示例进行性能测试

    背景 秒杀是我们ServiceComb开源团队以领域驱动设计(DDD)为背景,从零开始构建一个微服务架构的示例项目:在<秒杀开发历程>系列博文中提到它作为一个高并发压力场景的应用,采用了C ...

  3. noip2011day2-观光公交

    题目描述 风景迷人的小城 \(Y\) 市,拥有 $n $个美丽的景点. 由于慕名而来的游客越来越多,\(Y\) 市特 意安排了一辆观光公交车,为游客提供更便捷的交通服务. 观光公交车在第 \(0\) ...

  4. Boruvka

    大概是这样的:一开始图中有\(n\)个连通块,每次操作我们选出各个连通块连出去的最短的边(如果有相同边权的边的话可以把序号作为第二关键字),然后把这些边加入最小生成树. 最坏的情况下每次操作都会让当前 ...

  5. 打印输出opencv的版本信息

    本文链接: https://mangoroom.cn/opencv/print-opencv-version-info.html 序 查看自己安装的opencv的版本信息的方法有两种. 方法一-查看l ...

  6. PHP中时区(timezone)设置的三种方法(转)

    方法1: (最好的方法)在php.ini里加上找到date.timezone项,设置date.timezone = "Asia/Shanghai",重启环境就ok了. 方法2: 在 ...

  7. 【优质blog、网址】置顶

    一.大公司等技术blog:   blog1: http://blog.csdn.net/mfcing/article/details/51577173 blog2: http://blog.csdn. ...

  8. YOLOv3训练过程笔记

    本人使用的是linux平台,按照YOLO网页0https://pjreddie.com/darknet/yolo/的步骤操作进行下载darkenet程序包以及编译,之后可尝试用VOC2007的数据集测 ...

  9. ES分布式原理

    参考:https://blog.csdn.net/chang384915878/article/details/86747419 一.准备知识 这里只是简单的介绍,详情可以看我的另一篇博客:https ...

  10. 用 C++ 模板元编程实现有限的静态 introspection

    C++ 中的奇技淫巧大部分来源于模板技术,尤其是模版元编程技术(Template Meta-Programming, TMP).TMP 通过将一部分计算任务放在编译时完成,不仅提高了程序的性能,还能让 ...