数字操作

题意:
就是给你一个数n,你可以让n乘以任意正整数x,或者让n开根号。问你最小可以达到的数字是多少,达到这个数字最少要多少次操作。

思考:
刚开始以为就是直接暴力跑一遍,一个数让n乘以x,再开方即可。当然这是错的,乘的可能不够。实际上就是对n先分解质因数,首先要保证达到的数最小,那么就看每个质因子的次幂,让所有的次幂都成为最大次幂,然后再一步一步开方,如果当前的次幂不是2的倍数,也就是不能直接开方了,那么就乘以这个数,让他成为2的倍数,所以用个st标记,是否要乘以数,不管乘多少次,我们都可以转化成第一次全部乘完。

代码:

#include<bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define db double
#define int long long
#define PII pair<int,int >
#define mem(a,b) memset(a,b,sizeof(a))
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);using namespace std;
const int mod = 1e9+7,inf = 1e18;
const int N = 1e5+10,M = 2010;int T,n,m,k;
int va[N];map<int,int > mp;signed main()
{IOS;cin>>n;if(n==1){cout<<1<<" "<<0;return 0;}for(int i=2;i<=n/i;i++){while(n%i==0){mp[i]++;n /= i;}}if(n>1) mp[n]++;int maxn = 0,minn = inf,now = 1;for(auto t:mp){now = now*t.fi;maxn = max(maxn,t.se);minn = min(minn,t.se);}int sum = 0,st = 0;if(minn<maxn) st = 1; //如果有的质因子的次幂不够,那么就要乘数了while(maxn>1){if(maxn&1) //如果此时次幂不是2的倍数,那么乘以now,使得变成2的倍数{st = 1;maxn++;}maxn /= 2;sum++;}cout<<now<<" "<<sum+st; //答案就是质因子的乘积,次数就是开方次数和是否要乘数return 0;
}

总结:
多多思考,想一些算法之类的,用不确定的方法肯定不一定对。

Acwing周赛57-数字操作-(思维+分解质因数)相关推荐

  1. cdoj 1246 每周一题 拆拆拆~ 分解质因数

    拆拆拆~ Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1246 Descri ...

  2. c语言用质因数分解法求最大公约数,《分解质因数的方法求最大公约数》数学教案...

    <分解质因数的方法求最大公约数>数学教案 教学内容:教材P/57页内容"用分解质因数的方法求最大公约数",完成P/57"练一练"及P/58-59页练 ...

  3. php整形数组求里面的质数,PHP实现的分解质因数操作示例

    本文实例讲述了PHP实现的分解质因数操作.分享给大家供大家参考,具体如下: 思路: 如果要计算$num的质数,则至少收集$num以内的质数数组,判断$num是否在质数数组里: 如果否,则判断当前质数$ ...

  4. python显示给定数字因数分解_Python练习题 010:分解质因数

    [Python练习题 010]将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. -------------------------------------------------- ...

  5. c语言分解质因数的设计思路,C语言开发中分解质因数的操作实例

    C语言的开发在日常开发中被广泛使用,而我们都知道C语言是简单的编译方法,爱站技术频道小编今天就为大家带来了C语言开发中分解质因数的操作实例,一起去进入下文看看吧! 首先来看一个最简单的C语言实现质因数 ...

  6. Composite Coloring(思维 数论(筛素数 分解质因数))

    (29条消息) CodeForces - 1332B Composite Coloring(数论+构造)_Frozen_Guardian的博客-CSDN博客 (29条消息) codeforces 13 ...

  7. AcWing 3491. 完全平方数 题解 分解质因数

    题目 思路 由算数基本定理可知,任何一个数都可以分解成它的质因子的乘积. 那么如果一个数是完全平方数,那么在分解质因子的结果中,它每个质因子的次数必定是偶数次,因为这样才可以将他们分配给自己的平方根. ...

  8. [acwing周赛复盘] 第 91 场周赛20230218

    [acwing周赛复盘] 第 91 场周赛20230218 一.本周周赛总结 二. 4861. 构造数列 1. 题目描述 2. 思路分析 3. 代码实现 三.4862. 浇花 1. 题目描述 2. 思 ...

  9. python编写判断素数的函数并找出前五个摩尼森数_五十八、如何对一个数进行分解质因数...

    「@Author:Runsen」 ❝ 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化.「---- Runsen」 ❞ 先问你们一个小学问题:「什么是质因数?小学是对一个数进 ...

最新文章

  1. 深度学习加速器堆栈Deep Learning Accelerator Stack
  2. POJ2186:Popular Cows(tarjan+缩点)
  3. UA OPTI544 量子光学7 2-level system approximation的Density Matrix模型
  4. eclipse 出现 jar包找不到 问题记录
  5. 对php专业的认识,对PHP要有个全面的认识
  6. ElasticSearch学习资料
  7. 阿格尔克劳奇四分钟逆转 利物浦2-1小胜西汉姆联
  8. linux 已有目录挂载磁盘
  9. android中ScrollView和GridView/ListView共存时,ScrollView不在顶部的解决方法
  10. 计算机的3d软件家庭版,3DOne家庭版 64位
  11. 软考初级程序员的备考经验分享
  12. 忍不住笑的笑话(last:20180419)
  13. 前端分页功能(通用)
  14. 通过存储控制器访问外设
  15. Java程序员该如何准备明年的「金三银四」跳槽季,你准备好了吗?
  16. Python 利用PyQt5写一个简易的串口助手
  17. 小白一键重装有linux,linux小白说说用linux的感受
  18. reactjs前端数据导出
  19. spring boot 一个极简单的 demo 示例
  20. dreamweaver (dw)cc 2017

热门文章

  1. Python统计序列或文件中元素的频度
  2. 学C语言和英语水平的关系顶多不过半毛
  3. Source Insight 许可证激活与停用
  4. 新手入门:ST-Link和J-Link仿真器的使用
  5. 快速理解数据库超键,候选键,主键
  6. python 的StringIO
  7. 双摄像头深度剖析 (1):双Camera都能做什么?
  8. 鸿图霸业nbsp;谁与争锋
  9. 无符号数与有符号数比较
  10. speedoffice(Word)文字内容怎么添加删除线