数论
Edith_Finch
这个作者很懒,什么都没留下…
展开
-
HOJ-1006 - Weird Clock
题目HOJ-1006 - Weird Clock思路分析明显是道数学题(数学竞赛实锤 ) 。然而我不会推公式。所以我又去百度题解了(没错,我就是这么不要脸) ,并得出如下公式s(1+d)x≡0(mod60) ⟺ (1+d)x≡0(mod(60/gcd(60,s)) s(1+d)^x\equiv 0(mod60) \iff (1+d)^x\equiv 0(mod (60/gcd(...原创 2019-10-24 11:48:24 · 207 阅读 · 0 评论 -
HOJ-1004-Prime Palindromes
题目链接HOJ-1004-Prime Palindromes思路分析一开始想先用欧拉筛筛出所有素数之后在判断是否回文,结果超时。(标准结局) 后来看了下别人的思路,大部分是先自己创造回文数,再判断是否是素数。创造时也有技巧。因为存在一个定理:偶数位回文数除了11外均为合数。这样就可以只创造...原创 2019-10-24 10:36:59 · 262 阅读 · 0 评论 -
求最大公约数(GCD)
背景求GCD在与求余有关的运算中经常使用。这里我只记录了目前我用的最顺手的一种算法–辗转相除法。效率可能比较慢,因为包含求余运算,但写起来很简单。有效率跟高的算法的话,希望能在留言区留言。原理a可以表示成a = kb + r(a,b,k,r皆为正整数,且r<b),则r = a mod b假设d是a,b的一个公约数,记作d|a,d|b,即a和b都可以被d整除。而r = a - kb,...原创 2019-10-22 20:22:29 · 316 阅读 · 0 评论 -
素数筛--欧拉筛
描述其基本思想是把所有质数的倍数都标记为合数,剩下的就是质数。但光这样筛选的话有很多数会被重复筛出。比如12可以被4筛出,也可以被6筛出。这样明显会降低效率。欧拉筛提供了一种避免重复筛出的方法,从而提高了效率。关键if(i%prim[j]==0) break;这句代码就是欧拉筛的精髓。怎么理解呢?首先一个合数一定可以拆分成两个数的乘积。要想让这个数只被筛一次,我们可以规定只让它被它的最小的...原创 2019-10-22 20:12:25 · 501 阅读 · 0 评论