「AHOI2018 初中组」根式化简(分解质因数+推性质)

https://loj.ac/problem/2993

之前在哪里见过这个套路,但忘记了是在哪里了,在这里总结一下

暴力就是筛出\(n^{\frac{1}{3}}\)里的所有质数,然后用它们去分解。

这个有\(80p\)。

事实上,我们可以只用\(n^{\frac{1}{4}}\)内的质数去分解,对于分解剩下的那个数\(x\)。

\(x\)的最小质因子\(>n^{\frac{1}{4}}\),所以它最多有\(4-1=3\)个质因子。

所以它要是想有一个\(3\)次以上的质因子,就只能是\(x^{\frac{1}{3}}\)。

这样就可以过了。

Code:

#include<bits/stdc++.h>
#define fo(i, x, y) for(int i = x, _b = y; i <= _b; i ++)
#define ff(i, x, y) for(int i = x, _b = y; i <  _b; i ++)
#define fd(i, x, y) for(int i = x, _b = y; i >= _b; i --)
#define ll long long
#define pp printf
#define hh pp("\n")
using namespace std;

const int N = 31635;

int bz[N]; ll p[N], w[N], p0;

int n; ll x;

int main() {
	n = 31630;
	fo(i, 2, n) fo(j, 2, n / i) bz[i * j] = 1;
	fo(i, 2, n) if(!bz[i]) p[++ p0] = i;
	fo(i, 1, p0) w[i] = p[i] * p[i] * p[i];
	for(scanf("%d", &n); n; n --) {
		scanf("%lld", &x);
		ll a = 1;
		for(int i = 1; i <= p0 && x >= w[i]; i ++) {
			while(x % w[i] == 0) x /= w[i], a *= p[i];
			while(x % p[i] == 0) x /= p[i];
		}
		ll y = round(pow(x, (double) 1 / 3));
		if(y * y * y == x) a *= y, x = 1;
		pp("%lld\n", a);
	}
}

原文地址:https://www.cnblogs.com/coldchair/p/12676901.html

时间: 2024-10-21 22:04:57

「AHOI2018 初中组」根式化简(分解质因数+推性质)的相关文章

Chrome 扩展 Stylish :给不喜欢某个网站一键「换肤」

原文地址:http://whosmall.com/?post=419 本文标签: Chrome扩展 Chrome浏览器 Chrome插件 Chrome扩展Stylish Stylish是什么 Stylish 是什么? 开门见山,Stylish 的作用是,它可以把百度首页变成这样: 它还能把知乎「拍扁」,让微博网页版变得简洁无比,让 Feedly 用上Material Design-- 这个神奇的 Stylish实际上是一个浏览器插件,适用于 Chrome,Firefox,Opera 以及 Saf

王堅:「資料」改變了商業模式,運算能力決定企業的競爭力

阿里巴巴集團技術委員會主席.阿里巴巴的雲端建立者,王堅博士於上週來到台灣,出席了阿里巴巴針對台灣創業者舉辦的一場大會時,發表了他對於雲端運算.大數據以及人工智慧的一些看法以及建議. 由於是針對創業者的場合,王堅針對現在創業者最注意的四個趨勢:網際網路.大數據.雲端運算和人工智慧提出了建議.王堅表示,當初阿里巴巴談電子商務的時候,並不是大家想的簡單的把商店搬到網路上如此而已,而是從「相信網際網路是未來商業的基礎設施」這個基本觀念出發.而現在,你可以看到當初有這樣想法的網路公司,現在都已經成長為科技

「C语言」Windows+EclipseCDT下的C语言开发环境准备

之前写过一篇 「C语言」在Windows平台搭建C语言开发环境的多种方式 ,讨论了如何在Windows下用DEV C++.EclipseCDT.VisualStudio.Sublime Test.Clion等IDE/编辑器搭建C语言开发环境,但也只是点到为止的介绍,对每一个开发环境的选择没有详细的步骤与过程: 这次借助C语言期末课程设计文档上介绍用Eclipse开发C语言的时机,逐步图文论证如何用Eclipse从安装到输出自己的第一个C语言Hello World: 欢迎探讨,欢迎互粉: 目录:

大數據時代浪潮的「弄潮兒」

進入2015年,海量的數據正在迅速膨脹並變大,它決定著企業的未來發展,雖然現在企業可能並沒有意識到數據爆炸性增長帶來的問題的隱患,但是隨著時間的推移,人們將越來越多的意識到數據對企業的重要性. 面臨海量數據的挑戰 大數據(big data)是時下非常熱門的話題,大數據是用來描述和定義信息爆炸時代產生的海量數據.大數據的發展能夠為人們獲得更為深刻.全面的洞察能力提供前所未有的空間與潛力,那麼如何看待大數據給IT市場帶來的機遇和挑戰呢? 紐約時報網站此前刊載文章稱,大數據時代已經來臨並且正在對每個領

深度 | 邢波教授谈人工智能科学路径:为人工智能装上「无穷动」引擎

深度 | 邢波教授谈人工智能科学路径:为人工智能装上「无穷动」引擎 本文由邢波教授 授权转载 微信公众号:猫匣子 作者:邢波 有些人是因为对人工智能的原理不理解而导致,有些人是为了个人名望而宣扬人工智能威胁论,有些人则是为了商业的利益推动人工智能威胁论.——Yann LeCun   人工智能算法本身这个计算任务像登山,它是有明确的目标的,可以用数学描述和比较的目标,它本身有弹性.容错性.随机性.和客观的量化的可评估性 … 人工智能功能的提升和突破来源于理论模型,算法,和计算引擎的不断创新,缺一不

转: 拒绝「技术栈」选择恐惧症

所谓最小化可行产品(Minimum Viable Product,MVP),就是将产品快速推向客户,从客户反馈中不断进行迭代.更重要的是,MVP 也是研发团队进一步完善产品的基础. 但是,在正式代码之前,你需要选择今后支撑产品的 技术栈,也就是要选择好整个产品每一层所要应用的技术语言.架构等. 技术栈的选择往往是创始人面临的艰难问题.无论是技术人员还是非技术人员,如果不具体了解每个语言和架构的特点,面对现在如此多元化的IT技术,简直能逼死纠结症患者.而且,如果选错了语言或者框架,很可能会导致较为

matlab化简符号表达式

化简符号表达式计算机毕竟还是挺笨的, 经过一系列的符号计算后, 得到的结果可能只有它自己才能看懂, Matlab提供大量函数以用于符号表达式的化简. collect(f): 函数用途是合并多项式中相同的项, 如: syms x tf=(1+x)*t+x*t;collect(f) expand(f):展开多项式, syms xf=x*(x*(x-1)+3)+2;expand(f); horner(f) 对转换多项式为Horner形式, 这种形式的特点是乘法嵌套, 其有着不错的数值计算性质. sym

「足记」产品体验报告

「足记」产品体验报告     前段时间图片社交产品领域诞生了一款新贵--足记.足记在2.1.4版本,加入了横向宽屏拍摄.添加中英文字幕--即"大片模式".正是这次更新,让这款app从3月9日用户数还在10万量级,在不到两周的时间达到了1000万的量级,截止到3月24日,用户数达到了1200万.与此同时足记在App Store排名从Top1000开外,蹿升到免费分类榜第一.称得上2015年第一款现象级APP.抛开足记的辉煌历程不谈,此文纯粹从产品角度对足记进行分析.可以说足记到2.1.4

深入浅出MyBatis:「映射器」全了解

本篇文章是「深入浅出MyBatis:技术原理与实践」书籍的总结笔记. 上一篇总结了MyBatis的配置,详细说明了各个配置项,其中提到了映射器,它是MyBatis最强大的工具,也是使用最多的工具. 通过映射器,可以很容易的进行数据的增删改查操作,我们抽象下进行这些操作的关键点:传递查询参数.组装各种场景下的查询条件.关联查询.将查询结果映射为Java Bean对象或集合等.另外,可以通过延迟加载.缓存提高数据查询的性能. 本篇就按照这个思路进行总结,首先列举下映射器的主要元素,每个元素提供的配置