题目链接

题意:输入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); }
}
}

最新文章

  1. java中Jbutton常用设置
  2. PHP获取页面执行时间的方法
  3. 笔记本(WIN7|XP)发射wifi信号 当无线路由使用
  4. 我的android学习经历12
  5. How To Create A Struts 2 Web Application
  6. php和js根据子网掩码和ip计算子网
  7. Python,遍历目录下TXT
  8. hibernate学习(二)
  9. 扩展Python模块系列(三)----参数解析与结果封装
  10. css scroll bug
  11. 《.NET 设计规范》第 6 章:扩展性设计
  12. Luogu3527:[POI2011]MET-Meteors
  13. rc.local(ubuntu18.04)
  14. [ 严重 ] my系统核心数据库sql注入
  15. vue-router 动态添加 路由
  16. Swift5 语言指南(二十) 类型转换
  17. jqPlot图表插件学习之阴阳烛图
  18. (原创)如何使用boost.asio写一个简单的通信程序(二)
  19. MFC 剪切板的使用、线程介绍
  20. [POI2015]Trzy wieże

热门文章

  1. 测开之路七十二:性能测试工具之locust简介
  2. 一个使用Spring的AspectJ LTW的简单例子
  3. 简单入门爬斗鱼颜值区妹子照片 v1.1
  4. 关于 pip disreubution setuptools(unable to locate package pip)
  5. .net Datatable
  6. python常用模块(3)
  7. LinkedHashSet -有序,不重合集合,但仍不可索引,结合for循环取元素,数据多可能效率低
  8. kmp(最长前缀与后缀)
  9. 2019 Multi-University Training Contest 1 - 1012 - NTT
  10. python学习三十五天函数递归的用法