题意:

给出一个n ;

有两个操作: 1,mul A   ,   n=n*A   ; 2,sqrt()  ,  n=sqrt(n)  开更出来必须是整数 ;

求出经过这些操作后得出的最小  n , 和最小操作数;

分析:首先得明确知道分解到怎样的时候才是 得出最小的n , 首先进过手画就可以明明,经过分解n 可以发现它的素数因子是不可以被开根去的 , 无论怎么相乘开根的结果总是留在的 , 好那这到题的MIN(n) = (本身所有的素数因子的鸡) ;

那操作数怎么求呢?

首先我们只需要一次的相乘把它化简为完美状态(完美状态是指,所有的素数因子的个数相同);

那剩下的直接开根就好,完美AC

#include<bits/stdc++.h>
using namespace std; int main()
{
int n;
scanf("%d",&n);
if(n==)
{
printf("1 0\n");
return ;
}
int MAX,MIN,W;
MAX=;
MIN=0x3f3f3f3f;
W=;
for(int i= ; i*i<=n ; i++)///找到素数因子
{
if(n%i==)
{
int cnt=; ///记录当前素数因子的个数
W*=i; ///最终的为所有的素数因子的鸡
while(n%i==)
{
n/=i;
cnt++;
}
MAX=max(MAX,cnt);
MIN=min(MIN,cnt);
if(n==)
break;
}
}
if(n>)
{
MAX=max(MAX,);
MIN=min(MIN,);
W*=n;
}
printf("%d ",W);
int num=;
for(int i= ; i<= ; i++)
{
if((<<i) >=MAX)
{
int num=i;
if(MIN==(<<i))
{ }
else
num++;///if最小因子的个数与最大的不一样就要进过乘机的运算了
printf("%d",num);
break;
}
}
}

最新文章

  1. Python初学者之网络爬虫
  2. SpringBoot Schedule 配置
  3. MINA系列学习-IoBuffer
  4. 在线程中调用SaveFileDialog
  5. smarty模版出现错误提示出现了不期望的字符
  6. Linux下配置Java环境变量
  7. iOS开发——UI篇&amp;九宫格算法
  8. ubunt下的MinimalCD
  9. 瑞柏匡丞谈中国移动app的国际进阶路
  10. ActiveMQ学习系列(一)
  11. 在Mac OS X下搭建gtk编译环境
  12. [Codeforces543D]Road Improvement
  13. eclipse中如何打开工作空间里面已经有的项目
  14. 深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动
  15. centos shell 编程-通过端口号kill对应的进程
  16. Java后台获取前端utf-8格式&amp;nbsp;空格,使用trim()消除不了的解决办法
  17. 前端PHP入门-031-文件上传-六脉神剑
  18. Python学习笔记(三十一)正则表达式
  19. opencv颜色提取color filting
  20. 菜鸟进阶之:VC++之Visual Studio中DLL调用实现

热门文章

  1. [Python Study Notes]pd.read_csv()函数读取csv文件绘图
  2. 修改linux内核启动logo及显示位置
  3. Lucene打分公式的数学推导
  4. 【总结整理】javascript基础入门学习(慕课网学习)
  5. 3D模型浏览器的实现思路
  6. 添加超级链接为什么用a标签
  7. Qt嵌入式开发环境搭建
  8. oracle创建数据库的语句
  9. Jsp入门第二天
  10. 提取pfx证书公钥和私钥