Codeforces Round #520 (Div. 2) B math(素数因子的应用)
给出一个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;
}
}
}
Codeforces Round #520 (Div. 2) B math(素数因子的应用)的更多相关文章
- Codeforces Round #520 (Div. 2) B. Math
B. Math time limit per test:1 second memory limit per test:256 megabytes Description: JATC's math te ...
- Codeforces Round #520 (Div. 2) B. Math 唯一分解定理+贪心
题意:给出一个x 可以做两种操作 ①sqrt(x) 注意必须是完全平方数 ② x*=k (k为任意数) 问能达到的最小的x是多少 思路: 由题意以及 操作 应该联想到唯一分解定理 经过 ...
- Codeforces Round #520 (Div. 2)
Codeforces Round #520 (Div. 2) https://codeforces.com/contest/1062 A #include<bits/stdc++.h> u ...
- CF每日一练 Codeforces Round #520 (Div. 2)
比赛过程总结:过程中有事就玩手机了,后面打的状态不是很好,A题理解错题意,表明了内心不在状态,B题想法和思路都是完全正确的,但是并没有写出来,因为自己代码能力不强,思路不是特别清晰,把代码后面写乱了, ...
- Codeforces Round #520 (Div. 2) E. Company(dfs序判断v是否在u的子树里+lca+线段树)
https://codeforces.com/contest/1062/problem/E 题意 给一颗树n,然后q个询问,询问编号l~r的点,假设可以删除一个点,使得他们的最近公共祖先深度最大.每次 ...
- Codeforces Round #520 (Div. 2) Solution
A. A Prank Solved. 题意: 给出一串数字,每个数字的范围是$[1, 1000]$,并且这个序列是递增的,求最多擦除掉多少个数字,使得别人一看就知道缺的数字是什么. 思路: 显然,如果 ...
- Codeforces Round #520 (Div. 2) D. Fun with Integers
D. Fun with Integers 题目链接:https://codeforc.es/contest/1062/problem/D 题意: 给定一个n,对于任意2<=|a|,|b|< ...
- Codeforces Round #520 (Div. 2) C. Banh-mi
C. Banh-mi time limit per test:1 second memory limit per test:256 megabytes 题目链接:https://codeforc.es ...
- Codeforces Round #520 (Div. 2) A. A Prank
A. A Prank time limit per test 1 second memory limit per test 256 megabytes 题目链接:https://codefo ...
随机推荐
- Github修改项目显示的语言类型
//仓库的根目录下创建 .gitattributes 文件,添加以下代码: *.js linguist-language=java *.css linguist-language=java *.htm ...
- LookupError: unknown encoding: cp65001解决办法
一.之前手上做的一个web项目,漏洞频发,服务器用的是菜鸟云服务器,那个应急响应中心不错,想不到乌云倒了,白帽子竟然被阿里系养了,题外话了,首先感谢白帽子提的漏洞,同时也感慨自己安全知识,以及意识的薄 ...
- taglib标签在web.xml文件中报错的解决办法
报错的原因分析: 在jsp2.0中,且2.4版的DTD验证中,taglib描述符,正确写法是放到<jsp-config></jsp-config>描述符中.所以,我们的tagl ...
- re.I re.L re.M re.S re.U re.X
- 框架之 hibernate之二
1. Hibernate持久化对象的状态 2. Hibernate的一级缓存 3. Hibernate操作持久化对象的方法 4. Hibernate的基本查询 Hibernate的持久化类 什么是持久 ...
- koa的跨域访问
koa跨域访问:1.安装插件 npm install koa-cors --save-dev2.项目的app.js中var cors = require('koa-cors'); app.use(co ...
- nginx负载均衡, 配置地址带端口
nginx.conf 配置如下: upstream wlcf.dev.api { server 127.0.0.1:8833; server 127.0.0.2:8833; } server { l ...
- tomcat启动时加载配置文件 报错
原因: @serice("customerService") 和@Repository(value="customerDao") 解决: 直接@ ...
- 面试题:hibernate第三天 一对多和多对多配置
1.1 一对多XML关系映射 1.1.1 客户配置文件: <?xml version="1.0" encoding="UTF-8"?> <!D ...
- JavaPersistenceWithHibernate第二版笔记-第六章-Mapping inheritance-006Mixing inheritance strategies(@SecondaryTable、@PrimaryKeyJoinColumn、<join fetch="select">)
一.结构 For example, you can map a class hierarchy to a single table, but, for a particular subclass, s ...