Minimal Power of Prime
2024-09-06 00:44:07
题意:输入n,求所有质因子幂的最小值。n奇大无比。
思路:先对n所有n开五次方根的质因子约完,然后如果没有除尽的话,因子最多也就4个了,所以幂数大于1的情况有p1^4,p1^3, p1^2 对于其他情况肯定有幂为1的。
然后注意一下精度问题。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#define ll long long
using namespace std;
int a[];
int b[];
ll qp(ll x, int y) {
ll ans = ;
for(int i=;i<=y;i++) ans*=x;
return ans;
}
int main()
{
int t,k=;
for(int i=;i<=;i++)
{
if(b[i]==)
{
a[k++]=i;
for(int j=i+i;j<=;j+=i)
{
b[j]=;
}
}
}
while(~scanf("%d",&t))
{
while(t--)
{
long long n;
scanf("%lld",&n);
int y=powl(n,/5.0);
// printf("y:%d\n",y);
int m=;
for(int i=;i<k;i++)
{
// printf("%d----\n",a[i]);
if(a[i]>y)
break;
if(n%a[i]==)
{ int r=;
while()
{
if(n%a[i])
{
break;
}
n/=a[i];
r++;
}
m=min(m,r);
} }
//printf("%lld\n",n);
if(n!=){
long long y4=powl(n,/4.0);
long long y3=powl(n,/3.0);
long long y2=powl(n,/2.0);
if(qp(y4,)==n||qp(y4+,)==n||qp(y4-,)==n)
{
m=min(m,);
}
else if(qp(y3,)==n||qp(y3+,)==n||qp(y3-,)==n)
{
m=min(m,);
}
else if(qp(y2,)==n||qp(y2+,)==n||qp(y2-,)==n)
{
m=min(m,);
}
else
{
m=min(m,);
}
}
printf("%d\n",m); }
}
}
最新文章
- java中Jbutton常用设置
- PHP获取页面执行时间的方法
- 笔记本(WIN7|XP)发射wifi信号 当无线路由使用
- 我的android学习经历12
- How To Create A Struts 2 Web Application
- php和js根据子网掩码和ip计算子网
- Python,遍历目录下TXT
- hibernate学习(二)
- 扩展Python模块系列(三)----参数解析与结果封装
- css scroll bug
- 《.NET 设计规范》第 6 章:扩展性设计
- Luogu3527:[POI2011]MET-Meteors
- rc.local(ubuntu18.04)
- [ 严重 ] my系统核心数据库sql注入
- vue-router 动态添加 路由
- Swift5 语言指南(二十) 类型转换
- jqPlot图表插件学习之阴阳烛图
- (原创)如何使用boost.asio写一个简单的通信程序(二)
- MFC 剪切板的使用、线程介绍
- [POI2015]Trzy wieże
热门文章
- 测开之路七十二:性能测试工具之locust简介
- 一个使用Spring的AspectJ LTW的简单例子
- 简单入门爬斗鱼颜值区妹子照片 v1.1
- 关于 pip disreubution setuptools(unable to locate package pip)
- .net Datatable
- python常用模块(3)
- LinkedHashSet -有序,不重合集合,但仍不可索引,结合for循环取元素,数据多可能效率低
- kmp(最长前缀与后缀)
- 2019 Multi-University Training Contest 1 - 1012 - NTT
- python学习三十五天函数递归的用法