数论
文章平均质量分 96
ygkl9698
长风破浪会有时,直挂云帆济沧海
展开
-
[C++]数论(二)
当且仅当m是a和b的最大公因数d的倍数时,方程有整数解。可能不是正整数,也不一定是最小的解,因此我们要的答案是。构造有很多,而扩展欧几里得算法的解就是其中之一。至于怎么求,快速幂嘛,对吧,反正我也懒得写了嘿嘿。我想,最缓(xun)慢(su)的做法就是暴力了。是质数,我们用费马小定理也是得出一样的结论的。如果求线性的欧拉函数,则可以在线性筛中求。如果要求1~n的逆元了,怎么样才能最快?我们知道,扩展欧几里得算法求的是。因此,我们要求的乘法逆元就是。特别的,只有a和b互质时,噢,对了,大家还可以顺便把。原创 2023-12-06 07:00:00 · 193 阅读 · 1 评论 -
[C++]数论(一)
一马当先地还是暴力了,枚举1~n,逐个判断每个数是不是质数。当然因为上面的判断我们已经讲过了数学优化,所以这里我们就直接跳过最慢的部分吧。不知道大家有没有一个突发奇想,就是每个数的因子都比这个数小,所以能不能在遍历到因子的时候就把这个数删掉了呢?在上述过程中,我们发现6这个数字被删了两次,如果能每个数至多删一次的话,不就能达到线性了吗?而在C++17和C++20版中,有std::gcd()函数,要求的头文件是。在C++14版中,有__gcd()函数,要求的头文件是。当然,以上只是部分内容,敬请期待。原创 2023-12-05 07:00:00 · 463 阅读 · 1 评论