hdoj.3826 Squarefree number

Posted walterj726

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdoj.3826 Squarefree number相关的知识,希望对你有一定的参考价值。

hdoj 3826 Squarefree number

考虑一个数能被完全平方数整除,当且仅当对其分解质因数以后,至少有一个质数的指数(≥2)

借用试除法分解质因数的思路,大于(sqrt[3]{N})的质因子至多只有一个。那么,大于 (sqrt[3]{N}) 的质因数的平方整除 $N $ 的个数至多也只有一个,而且指数至多为 (2) ,因为指数再大或者再乘上一个等数量级的完全平方数都会超过 $ 10^{18} $ 的数据范围。

然后就筛出 (sqrt[3]{10^{18}} = 10^6)范围内的质数,然后将 $N $ 中([0, 10^6])范围内的质因子去掉。在这一过程中一旦出现指数大于 (2) 的情况就直接break 。然后剩下的如果是大于(10^6)的话就 check 一下是不是完全平方数就好了。

为什么只有N大于(10^6)check. 因为如果N小于等于(10^6)的话,他在我们预处理的素数表中已经会被处理掉了

以上是关于hdoj.3826 Squarefree number的主要内容,如果未能解决你的问题,请参考以下文章

hdu3826-Squarefree number-(欧拉筛+唯一分解定理)

bzoj 2986 Non-Squarefree Numbers 容斥原理+数学

计蒜客 30999 - Sum - [找规律+线性筛][2018ICPC南京网络预赛J题]

numb2string

python切片

类方法不返回python中的排序列表