HDU 6623 Minimal Power of Prime(数学)
•题意
给你一个大于 1 的正整数 n;
它可以分解成不同的质因子的幂的乘积的形式,问这些质因子的幂中,最小的幂是多少。
•题解
把[1,10000]内的素数筛出来,然后对于每个素$P$数遍历找$P_{k}$的$k$,用$ans$来维护最小的$k$
对于大于10000的素数,$(10^{4})^{4}<10^{18}<(10^{4})^{5}$,所以最大是4次方
先看4次方:
若$x^{4}==n$,则$x$一定是素数,为什么是素数?
根据欧拉定理,一个数可以分成若干个素数乘积的形式。如$m=p_{1}^{k1}\cdot p_{2}^{k2}\cdot p_{3}^{k3}\cdot p_{4}^{k4}\cdot p_{5}^{k5}$
假设$p_{1},p_{2},p_{3}$为$10000$以内的素数,$p_{4},p_{5}$为大于$10000$的素数。
由于$n$的$10000$以内的素数都被消去了,现只剩下$p_{4}^{k4}\cdot p_{5}^{k5}=n$
因为$p_{4}^{k4}\cdot p_{5}^{k5}=n=x^{4}$,由上只上限是4, 为了方便设$k4=k5=4$,所以$p_{4}^{4}\cdot p_{5}^{4}$可以合并为$(p_{4}p_{5})^{4}$,也就是$x=(p_{4}p_{5})$这个合数。
但是$p_{4},p_{5}$都是$>10^{4}$,所以$x=(p_{4}p_{5})>10^{8}$,即$n=x^{4}=(p_{4}p_{5})^{4}>10^{18}$,与题意矛盾
再看2次方
若$x^{2}==n$,则$x$可能是合数可能是素数?
如果是4次方的话肯定不能是2次方,由上只$x$是个素数,那$y=x^{2}$的话,$y$就是合数了,所以2次方4次方只能存在一个
如果不是4次方的话,可以是2次方有两种情况,$x$是素数和$x$是合数,素数符合是明显的,那合数为什么符合呢
仍然以上述例子$m=p_{1}^{k1}\cdot p_{2}^{k2}\cdot p_{3}^{k3}\cdot p_{4}^{k4}\cdot p_{5}^{k5}$
假设$p_{1},p_{2},p_{3}$为$10000$以内的素数,$p_{4},p_{5}$为大于$10000$的素数。
由于$n$的$10000$以内的素数都被消去了,现只剩下$p_{4}^{k4}\cdot p_{5}^{k5}=n$
因为$p_{4}^{k4}\cdot p_{5}^{k5}=n=x^{2}$,由上面上限是4同理知上限是2,为了方便设$k4=k5=2$,所以$p_{4}^{2}\cdot p_{5}^{2}$可以合并为$(p_{4}p_{5})^{2}$,也就是$x=(p_{4}p_{5})$这个合数。对于$p_{4}^{2}$这个素数来说是2,对于$p_{5}^{2}$这个素数来说也是2,对于$(p_{4}p_{5})^{2}$这个合数可以分成$p_{4}^{2} p_{5}^{2}$这两个素数,也是2.
3次方与4次方同理
如果都不是的话,就只剩下一个素数了,那就是1
•代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=1e4;
const int mmaxn=1e6;
int prime[maxn];
bool Mark[maxn+];
int num;
void Prime()
{
for(int i=;i<=maxn;i++)
{
if(Mark[i]==)
prime[num++]=i;
for(int j=;j<num&&prime[j]*i<=maxn;j++)
{
Mark[i*prime[j]]=;
if(i%prime[j]==)
break;
}
}
}
int main()
{
Prime();
int T;
scanf("%d",&T);
while(T--)
{
ll n;
scanf("%lld",&n);
int ans=;
for(int i=;i<num;i++)
{
int cur=;
while(n%prime[i]==)
{
n/=prime[i];
cur++;
}
if(!cur)
continue;
ans=min(ans,cur);
if(ans==||n==)
{
printf("%d\n",ans);
break;
}
}
if(ans==||n==)
continue; ll x=sqrt(sqrt(n));
ll y=sqrt(n); if(x*x*x*x==n)///
ans=min(ans,);
else if(y*y==n)///
ans=;
else///
{
bool flag=false;
ll l=maxn-,r=mmaxn+;
while(r-l>)
{
ll mid=(l+r)>>;
if(mid*mid*mid>n)
r=mid;
else
l=mid;
if(mid*mid*mid==n)
{
flag=true;
ans=min(ans,);
break;
}
}
if(!flag)
ans=;
}
printf("%d\n",ans);
}
}
HDU 6623 Minimal Power of Prime(数学)的更多相关文章
- HDU 6623"Minimal Power of Prime"(数学)
传送门 •题意 给你一个大于 1 的正整数 n: 它可以分解成不同的质因子的幂的乘积的形式,问这些质因子的幂中,最小的幂是多少. •题解 定义 $ans$ 表示最终答案: ①如果 $ans \ge 5 ...
- HDU 6623 Minimal Power of Prime
Time limit 1000 ms Memory limit 65536 kB OS Windows 中文题意 给一个数n,设将n质因数分解后可以得到 \[n=\prod_{i=1}^{\omega ...
- 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 ...
- 2019杭电多校第四场hdu6623 Minimal Power of Prime
Minimal Power of Prime 题目传送门 解题思路 先打\(N^\frac{1}{5}\)内的素数表,对于每一个n,先分解\(N^\frac{1}{5}\)范围内的素数,分解完后n变为 ...
- [2019杭电多校第四场][hdu6623]Minimal Power of Prime
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6623 题目大意为求一个数的唯一分解的最小幂次.即120=23*31*51则答案为1. 因为数字太大不能 ...
- 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 ...
- 2019HDU多校Minimal Power of Prime——分段讨论&&思维
题目 将 $n$($1 < n \leq 10^{18}$)质因数分解,求质因数幂的最小值. 分析 直接质因数分解,不太行. 可以这样想,对小区间质因数分解,n变小了,再枚举答案. 打印1-10 ...
- 2019hdu多校 Minimal Power of Prime
题目链接:Click here 题目大意:求一个数分解质因数后的最小幂指数 Solution: 首先,我们肯定是不能直接暴力求解的 我们先考虑筛出1e4范围以内的所有质数,把x所有这个范围内的质因子筛 ...
- 【HDOJ6623】Minimal Power of Prime(Powerful Number)
题意:给定大整数n,求其质因数分解的最小质数幂 n<=1e18 思路:常规分解算法肯定不行 考虑答案大于1的情况只有3种:质数的完全平方,质数的完全立方,以及p^2*q^3,p,q>=1三 ...
随机推荐
- 使用 Swift 构建自定义的ActivityIndicator View
目前在自己的个人项目里,已经开始使用Swift去编写代码.这篇文章把项目中自己设计的一个ActivityIndicator View展示给大家. 在开始之前,我们先看看最终的效果,如下图: 我建议大家 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第九章:贴图
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第九章:贴图 代码工程地址: https://github.com/j ...
- iOS 后台定位
http://www.cocoachina.com/ios/20150724/12735.html 前言 之前的文章说过 我现在做的是LBS定位的社交APP 其中主要的一个功能就是能够实时定位社交圈中 ...
- React Native等比放大不丢失图片
9月11号 0.33版本,resizeMode中添加了center, 可以实现一样的功能.不过希望这篇文章还能帮助大家. 之前我们学习了从零学React Native之08Image组件 大家可以发现 ...
- Java“类”的内存分配_case1
- POJ-3615_Cow Hurdles
Cow Hurdles Time Limit: 1000MS Memory Limit: 65536K Description Farmer John wants the cows to prepar ...
- C# Find vs FirstOrDefault
本文告诉大家,在获得数组第一个元素时,使用哪个方法性能更高. 需要知道,两个方法都是 Linq 的方法,使用之前需要引用 Linq .对于 List 等都是继承可枚举Enumerable这时获取第一个 ...
- @bzoj - 5219@ [Lydsy2017省队十连测]最长路径
目录 @description@ @solution@ @accepted code@ @details@ @description@ 在Byteland一共有n个城市,编号依次为1到n,形成一个n个 ...
- H3C IP的主要作用
- oracle使用日期
当使用日期是,需要注意如果有超过5位小数加到日期上, 这个日期会进到下一天! 例如: 1. SELECT TO_DATE(‘01-JAN-93’+.99999) FROM DUAL; Returns: ...